调整注释
This commit is contained in:
parent
0dc7b6fcdc
commit
58bb382499
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : 长连接命令的约束
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-03-27 6:34 下午
|
||||
package abstract
|
||||
@ -14,25 +14,25 @@ import (
|
||||
|
||||
// ICommand 指令
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:35 下午 2021/3/27
|
||||
type ICommand interface {
|
||||
// GetCommand 注册的客户端指令
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:21 下午 2021/3/27
|
||||
GetCommand() string
|
||||
// GetConfigOption 获取指令的配置
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2:49 下午 2021/4/17
|
||||
GetConfigOption() []config.SetCommandConfig
|
||||
// Execute 执行指令的逻辑
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:21 下午 2021/3/27
|
||||
Execute(ctx *context.WSContext, data []byte) (interface{}, error)
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : 长连接模块的基础约束
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-03-27 6:32 下午
|
||||
package abstract
|
||||
@ -14,56 +14,56 @@ import (
|
||||
|
||||
// IWebsocket 接口约束
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:35 下午 2021/3/27
|
||||
type IWebsocket interface {
|
||||
// Connect 建立连接时,处理的方法
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:39 下午 2021/3/27
|
||||
Connect(ctx *context.WSContext) error
|
||||
// Disconnect 断开连接时处理的方法
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:40 下午 2021/3/27
|
||||
Disconnect(ctx *context.WSContext)
|
||||
// Close 关闭连接
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 8:43 下午 2021/3/27
|
||||
Close(ctx *context.WSContext, code int, message string) error
|
||||
// HandshakeURL 注册的websocket路由
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:45 下午 2021/3/27
|
||||
HandshakeURL() []string
|
||||
// GetCommandList 注册长连接模块支持的命令
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:48 下午 2021/3/27
|
||||
GetCommandList() []ICommand
|
||||
// GetModuleFlag 获取模块标识,全局唯一
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:50 下午 2021/3/27
|
||||
GetModuleFlag() string
|
||||
// GetServerPort 获取长连接监听的端口,多个模块可监听不同的端口
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:55 下午 2021/3/27
|
||||
GetServerPort() int
|
||||
|
||||
// GetWSServerConfig 获取WS-Server的配置
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:01 下午 2021/4/17
|
||||
GetWSServerConfig() []config.SetWSServerConfig
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : WS-Command 相关配置
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-04-17 2:34 下午
|
||||
package config
|
||||
@ -20,7 +20,7 @@ const (
|
||||
|
||||
// commandConfig 指令相关配置
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2:36 下午 2021/4/17
|
||||
type CommandConfig struct {
|
||||
@ -35,7 +35,7 @@ type SetCommandConfig func(cc *CommandConfig)
|
||||
|
||||
// ClosePushCommandErrorMessage 关闭指令执行异常时的消息推送
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2:51 下午 2021/4/17
|
||||
func ClosePushCommandErrorMessage() SetCommandConfig {
|
||||
@ -46,7 +46,7 @@ func ClosePushCommandErrorMessage() SetCommandConfig {
|
||||
|
||||
// CloseLogUpData 关闭记录上行数据
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:44 下午 2021/4/18
|
||||
func CloseLogUpData() SetCommandConfig {
|
||||
@ -57,7 +57,7 @@ func CloseLogUpData() SetCommandConfig {
|
||||
|
||||
// CloseLogDownData 关闭记录下行数据
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:45 下午 2021/4/18
|
||||
func CloseLogDownData() SetCommandConfig {
|
||||
@ -68,7 +68,7 @@ func CloseLogDownData() SetCommandConfig {
|
||||
|
||||
// CloseResponseData 关闭向客户端发送响应结果
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:47 下午 2021/4/18
|
||||
func CloseResponseData() SetCommandConfig {
|
||||
@ -79,7 +79,7 @@ func CloseResponseData() SetCommandConfig {
|
||||
|
||||
// NewCommandConfig 指令的配置
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2:39 下午 2021/4/17
|
||||
func NewCommandConfig(optionFunc ...SetCommandConfig) *CommandConfig {
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : WS-Server 相关配置
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-04-17 2:32 下午
|
||||
package config
|
||||
@ -35,7 +35,7 @@ const (
|
||||
// DefaultLogEnable 默认关闭日志
|
||||
DefaultLogEnable = false
|
||||
// DefaultLogConsole 默认开启控制台输出
|
||||
DefaultLogConsole = true
|
||||
DefaultLogConsole = false
|
||||
// DefaultMode 默认为Debug模式
|
||||
DefaultMode = RunModeDebug
|
||||
// DefaultLogLevel 默认的日志级别
|
||||
@ -60,7 +60,7 @@ const (
|
||||
|
||||
// WSServerConfig WS-Server的配置
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:02 下午 2021/4/17
|
||||
type WSServerConfig struct {
|
||||
@ -80,14 +80,14 @@ type WSServerConfig struct {
|
||||
|
||||
// SetWSServerConfig 设置WS-Server的配置
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:03 下午 2021/4/17
|
||||
type SetWSServerConfig func(wsc *WSServerConfig)
|
||||
|
||||
// SetWSServerLogEnable 开启日志记录
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:25 下午 2021/4/17
|
||||
func SetWSServerLogEnable(logPath string, logFile string, logLevel zapcore.Level, splitInterval logger.TimeIntervalType) SetWSServerConfig {
|
||||
@ -112,9 +112,20 @@ func SetWSServerLogEnable(logPath string, logFile string, logLevel zapcore.Level
|
||||
}
|
||||
}
|
||||
|
||||
// EnableConsoleLog 开启控制台日志输出
|
||||
//
|
||||
// Author : zhangdeman001@ke.com<白茶清欢>
|
||||
//
|
||||
// Date : 11:25 下午 2021/4/22
|
||||
func EnableConsoleLog() SetWSServerConfig {
|
||||
return func(wsc *WSServerConfig) {
|
||||
wsc.LogConsole = true
|
||||
}
|
||||
}
|
||||
|
||||
// EnablePprof 开启PProf,由于多模块共享一个进程,任意一个模块开启,就认为是开启
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 11:24 下午 2021/4/18
|
||||
func EnablePprof(pprofPort int) SetWSServerConfig {
|
||||
@ -126,7 +137,7 @@ func EnablePprof(pprofPort int) SetWSServerConfig {
|
||||
|
||||
// DisableStoreConnection 禁用连接存储
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 11:10 下午 2021/4/17
|
||||
func DisableStoreConnection() SetWSServerConfig {
|
||||
@ -137,7 +148,7 @@ func DisableStoreConnection() SetWSServerConfig {
|
||||
|
||||
// SetConnectionManager 连接管理实例
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 10:48 下午 2021/4/22
|
||||
func SetConnectionManager(manager storage.IConnection) SetWSServerConfig {
|
||||
@ -151,7 +162,7 @@ func SetConnectionManager(manager storage.IConnection) SetWSServerConfig {
|
||||
|
||||
// SetMaxMessageSize 限制消息大小
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 9:29 下午 2021/4/22
|
||||
func SetMaxMessageSize(maxMessageSize int64) SetWSServerConfig {
|
||||
@ -165,7 +176,7 @@ func SetMaxMessageSize(maxMessageSize int64) SetWSServerConfig {
|
||||
|
||||
// SetMaxMessageBufferSize 设置消息缓冲区
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 9:39 下午 2021/4/22
|
||||
func SetMaxMessageBufferSize(maxMessageBufferSize int) SetWSServerConfig {
|
||||
@ -179,7 +190,7 @@ func SetMaxMessageBufferSize(maxMessageBufferSize int) SetWSServerConfig {
|
||||
|
||||
// SetWriteWait 设置消息写入的等待时间, 单位 : 秒
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 9:44 下午 2021/4/22
|
||||
func SetWriteWait(writeWaitTime int) SetWSServerConfig {
|
||||
@ -193,7 +204,7 @@ func SetWriteWait(writeWaitTime int) SetWSServerConfig {
|
||||
|
||||
// SetPongWait 设置探活时,等待响应时间,单位 : 秒
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 9:55 下午 2021/4/22
|
||||
func SetPongWait(pongWait int) SetWSServerConfig {
|
||||
@ -207,7 +218,7 @@ func SetPongWait(pongWait int) SetWSServerConfig {
|
||||
|
||||
// SetPingPeriod 设置探活时间间隔
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 10:00 下午 2021/4/22
|
||||
func SetPingPeriod(pingPeriod int) SetWSServerConfig {
|
||||
@ -221,7 +232,7 @@ func SetPingPeriod(pingPeriod int) SetWSServerConfig {
|
||||
|
||||
// NewWSServerConfig 生成新的WS-Server配置
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:21 下午 2021/4/17
|
||||
func NewWSServerConfig(optionList ...SetWSServerConfig) *WSServerConfig {
|
||||
|
10
construct.go
10
construct.go
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : websocket...
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-03-27 6:49 下午
|
||||
package websocket
|
||||
@ -33,7 +33,7 @@ import (
|
||||
|
||||
// Server ...
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 8:04 下午 2021/3/27
|
||||
type Server struct {
|
||||
@ -57,7 +57,7 @@ var (
|
||||
|
||||
// NewWebsocketServe 启动websocket服务
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:49 下午 2021/3/27
|
||||
func NewWebsocketServe(wsInstanceList ...abstract.IWebsocket) error {
|
||||
@ -244,7 +244,7 @@ func initServer(wsInstance abstract.IWebsocket) {
|
||||
|
||||
// dispatchCommand 调度command ...
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 3:36 下午 2021/3/28
|
||||
func dispatchCommand(ctx *context.WSContext, data []byte) error {
|
||||
@ -343,7 +343,7 @@ func run() {
|
||||
|
||||
// Stop 停止服务
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 3:55 下午 2021/3/28
|
||||
func Stop() {
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : 上下文信息
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-03-27 6:53 下午
|
||||
package context
|
||||
@ -23,7 +23,7 @@ import (
|
||||
|
||||
// WSContext 请求上下文
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:03 下午 2021/3/27
|
||||
type WSContext struct {
|
||||
@ -39,7 +39,7 @@ type WSContext struct {
|
||||
|
||||
// NewContext 生成上下文信息
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 7:15 下午 2021/3/27
|
||||
func NewContext(ginCtx *gin.Context, flag string, session *melody.Session) *WSContext {
|
||||
@ -59,7 +59,7 @@ func NewContext(ginCtx *gin.Context, flag string, session *melody.Session) *WSCo
|
||||
|
||||
//CloneContext 克隆上下文信息
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 8:07 下午 2021/4/18
|
||||
func CloneContext(ctx *WSContext) *WSContext {
|
||||
@ -80,7 +80,7 @@ func CloneContext(ctx *WSContext) *WSContext {
|
||||
|
||||
// generateConnectionID 生成connection_id
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 5:18 下午 2021/4/8
|
||||
func generateConnectionID(flag string) string {
|
||||
|
12
define.go
12
define.go
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : 数据结构定义
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-04-18 7:53 下午
|
||||
package websocket
|
||||
@ -18,7 +18,7 @@ import (
|
||||
|
||||
// buildResponseData 构建响应数据
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 8:23 下午 2021/4/18
|
||||
func buildResponseData(wsCtx *context.WSContext, cmd string, data interface{}) []byte {
|
||||
@ -34,7 +34,7 @@ func buildResponseData(wsCtx *context.WSContext, cmd string, data interface{}) [
|
||||
|
||||
// getLoadDataList 获取需记录的数据列表
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 8:00 下午 2021/4/18
|
||||
func getLoadDataList(wsContext *context.WSContext, fieldList ...zap.Field) []zap.Field {
|
||||
@ -64,7 +64,7 @@ const (
|
||||
|
||||
// getWsServer 获取WS-Server实例
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 8:54 下午 2021/4/18
|
||||
func getWsServer(port int, flag string) *Server {
|
||||
@ -73,7 +73,7 @@ func getWsServer(port int, flag string) *Server {
|
||||
|
||||
// getLoggerInstance 获取日志实例
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 8:48 下午 2021/4/18
|
||||
func getLoggerInstance(moduleFlag string, cmdAllow *bool) *zap.Logger {
|
||||
@ -85,7 +85,7 @@ func getLoggerInstance(moduleFlag string, cmdAllow *bool) *zap.Logger {
|
||||
|
||||
// log 记录日志
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 8:29 下午 2021/4/18
|
||||
func log(loggerInstance *zap.Logger, f string, message string, fieldList []zap.Field) {
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : 启动一个ws server 的示例
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-03-28 3:57 下午
|
||||
package main
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : 消息相关操作
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-03-28 5:15 下午
|
||||
package message
|
||||
@ -17,7 +17,7 @@ import (
|
||||
|
||||
// Response 对当前连接的相关行为做出响应
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 5:17 下午 2021/3/28
|
||||
func Response(wsCtx *context.WSContext, data map[string]interface{}) error {
|
||||
@ -27,7 +27,7 @@ func Response(wsCtx *context.WSContext, data map[string]interface{}) error {
|
||||
|
||||
// Broadcast 消息广播
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 5:43 下午 2021/4/8
|
||||
func Broadcast(message string, ctxList ...context.WSContext) map[string]error {
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : 各种内存数据的管理,基于接口,可自己重新实现管理实例
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-04-08 5:29 下午
|
||||
package storage
|
||||
@ -11,7 +11,7 @@ import "github.com/go-developer/websocket/context"
|
||||
|
||||
// IConnection 连接管理接口定义
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 5:30 下午 2021/4/8
|
||||
type IConnection interface {
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Description : 在线连接的存储
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-04-08 5:46 下午
|
||||
package storage
|
||||
@ -14,7 +14,7 @@ import (
|
||||
|
||||
// NewDefaultConnectionManager 默认的内存连接管理实例
|
||||
//
|
||||
// Author : go_developer@163.com<张德满>
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 11:32 下午 2021/4/17
|
||||
func NewDefaultConnectionManager() IConnection {
|
||||
|
Loading…
Reference in New Issue
Block a user