// Package websocket ... // // Description : 数据结构定义 // // Author : go_developer@163.com<白茶清欢> // // Date : 2021-04-18 7:53 下午 package websocket import ( "encoding/json" "time" "github.com/go-developer/gopkg/util" "github.com/go-developer/websocket/context" "go.uber.org/zap" ) // buildResponseData 构建响应数据 // // Author : go_developer@163.com<白茶清欢> // // Date : 8:23 下午 2021/4/18 func buildResponseData(wsCtx *context.WSContext, cmd string, data interface{}) []byte { r := map[string]interface{}{ "connection_id": wsCtx.ConnectionID, "trace_id": wsCtx.TraceID, "command": cmd, "data": data, } byteData, _ := json.Marshal(r) return byteData } // getLoadDataList 获取需记录的数据列表 // // Author : go_developer@163.com<白茶清欢> // // Date : 8:00 下午 2021/4/18 func getLoadDataList(wsContext *context.WSContext, fieldList ...zap.Field) []zap.Field { if nil == wsContext { wsContext = &context.WSContext{} } list := []zap.Field{ zap.String("connection_id", wsContext.ConnectionID), zap.String("trace_id", wsContext.TraceID), zap.String("module_flag", wsContext.Flag), zap.String("server_ip", util.GetHostIP()), zap.Int64("timestamp", time.Now().UnixNano()), } list = append(list, fieldList...) return list } const ( logFuncDebug = "debug" logFuncInfo = "info" logFuncWarn = "warn" logFuncError = "error" logFuncDPanic = "dpanic" logFuncPanic = "panic" logFuncFatal = "fatal" ) // getWsServer 获取WS-Server实例 // // Author : go_developer@163.com<白茶清欢> // // Date : 8:54 下午 2021/4/18 func getWsServer(port int, flag string) *Server { return wsServerTable[port][flag] } // getLoggerInstance 获取日志实例 // // Author : go_developer@163.com<白茶清欢> // // Date : 8:48 下午 2021/4/18 func getLoggerInstance(moduleFlag string, cmdAllow *bool) *zap.Logger { if nil != cmdAllow && !*cmdAllow { return nil } return loggerInstanceTable[moduleFlag] } // log 记录日志 // // Author : go_developer@163.com<白茶清欢> // // Date : 8:29 下午 2021/4/18 func log(loggerInstance *zap.Logger, f string, message string, fieldList []zap.Field) { if nil == loggerInstance { return } switch f { case "info": loggerInstance.Info(message, fieldList...) case "warn": loggerInstance.Warn(message, fieldList...) case "error": loggerInstance.Error(message, fieldList...) case "dpanic": loggerInstance.DPanic(message, fieldList...) case "panic": loggerInstance.Panic(message, fieldList...) case "fatal": loggerInstance.Fatal(message, fieldList...) case "debug": fallthrough default: loggerInstance.Debug(message, fieldList...) } }