64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"encoding/gob"
|
|
"log"
|
|
"math/rand"
|
|
"net/http"
|
|
"os"
|
|
"time"
|
|
|
|
"github.com/grpc-ecosystem/grpc-gateway/runtime"
|
|
)
|
|
|
|
var cl *KeyList = &KeyList{}
|
|
|
|
func init() {
|
|
|
|
// 注册序列化结构
|
|
gob.RegisterName("workshop.KeyList", KeyList{})
|
|
gob.RegisterName("workshop.Country", Country{})
|
|
gob.RegisterName("workshop.LastName", LastName{})
|
|
gob.RegisterName("workshop.FirstName", FirstName{})
|
|
gob.RegisterName("workshop.NameCode", NameCode{})
|
|
|
|
f, err := os.OpenFile("./my.log", os.O_CREATE|os.O_RDWR, os.ModePerm)
|
|
CheckErrorPanic(err)
|
|
log.SetOutput(f)
|
|
|
|
rand.Seed(time.Now().UnixNano())
|
|
|
|
// 加载序列化结构
|
|
LoadGob("./data/building.gob", buildinglist)
|
|
LoadGob("./data/country.gob", countrylist)
|
|
|
|
LoadGob("./data/firstname.gob", fnl)
|
|
LoadGob("./data/lastname.gob", lnl)
|
|
|
|
LoadGob("./data/province.gob", province)
|
|
LoadGob("./data/ways.gob", ways)
|
|
|
|
}
|
|
|
|
func main() {
|
|
|
|
ctx := context.Background()
|
|
ctx, cancel := context.WithCancel(ctx)
|
|
defer cancel()
|
|
|
|
// gserver := grpc.NewServer()
|
|
mux := runtime.NewServeMux()
|
|
|
|
// 注册rpc http接口 根据protobuf协议生成
|
|
RegisterNameHandlerServer(ctx, mux, &nameserver{})
|
|
RegisterCountryHandlerServer(ctx, mux, &countryserver{})
|
|
RegisterProvinceAreaCityHandlerServer(ctx, mux, &provinceserver{})
|
|
RegisterWayHandlerServer(ctx, mux, &wayserver{})
|
|
RegisterBuildingHandlerServer(ctx, mux, &buildingserver{})
|
|
|
|
log.Println("Listen 4433")
|
|
log.Fatal(http.ListenAndServe(":4433", mux))
|
|
|
|
}
|