package main import ( "fmt" "ik3cloud" "ik3cloud/app/config" "ik3cloud/app/router" "log" "strings" "time" "unsafe" jsoniter "github.com/json-iterator/go" "github.com/smallnest/rpcx/server" ) func main() { // 初始化项目 closes := ik3cloud.InitApp() // 关闭资源 for _, fn := range closes { defer fn() } s := server.NewServer() // 注册中心 //ik3cloud.AddRegistryPlugin(s) // 设置路由 router.SetRouter(s) // json处理 jsoniter.RegisterTypeEncoderFunc("time.Time", func(ptr unsafe.Pointer, stream *jsoniter.Stream) { t := *((*time.Time)(ptr)) stream.WriteInt64(t.Unix()) }, nil) // 去除首尾空格 jsoniter.RegisterTypeDecoderFunc("string", func(ptr unsafe.Pointer, iter *jsoniter.Iterator) { *((*string)(ptr)) = strings.TrimSpace(iter.ReadString()) }) jsoniter.RegisterTypeDecoderFunc("*time.Time", func(ptr unsafe.Pointer, iter *jsoniter.Iterator) { strTime := iter.ReadString() if strTime == "" { return } formatTime := "2006-01-02 15:04:05" location, err := time.ParseInLocation(formatTime[0:len(strTime)], strTime, time.Local) if err != nil { iter.Error = err return } *((**time.Time)(ptr)) = &location }) jsoniter.RegisterTypeDecoderFunc("time.Time", func(ptr unsafe.Pointer, iter *jsoniter.Iterator) { strTime := iter.ReadString() formatTime := "2006-01-02 15:04:05" location, err := time.ParseInLocation(formatTime[0:len(strTime)], strTime, time.Local) if err != nil { iter.Error = err return } *((*time.Time)(ptr)) = location }) log.Println(config.Config.Server.Port) if err := s.Serve("tcp", fmt.Sprintf(":%d", config.Config.Server.Port)); err != nil { return } }