// Package main ... // // Description : 启动一个ws server 的示例 // // Author : go_developer@163.com<白茶清欢> // // Date : 2021-03-28 3:57 下午 package main import ( "fmt" "git.zhangdeman.cn/zhangdeman/websocket/config" "git.zhangdeman.cn/zhangdeman/websocket/message" "git.zhangdeman.cn/zhangdeman/websocket" "git.zhangdeman.cn/zhangdeman/websocket/abstract" "git.zhangdeman.cn/zhangdeman/websocket/context" ) func main() { _ = websocket.NewWebsocketServe(nil, &Example{}) } type Example struct { } func (e Example) Connect(ctx *context.WSContext) error { fmt.Println("建立连接成功") _ = message.Response(ctx, map[string]interface{}{"say": "hello world!", "cid": ctx.ConnectionID}) return nil } func (e Example) Disconnect(ctx *context.WSContext) { fmt.Println("断开连接成功") } func (e Example) Close(ctx *context.WSContext, code int, message string) error { fmt.Println("关闭连接成功") return nil } func (e Example) HandshakeURL() []string { return []string{ "/ws/test", } } func (e Example) GetCommandList() []abstract.ICommand { return []abstract.ICommand{&exampleCommand{}} } func (e Example) GetModuleFlag() string { return "example" } func (e Example) GetServerPort() int { return 10099 } func (e Example) GetWSServerConfig() []config.SetWSServerConfig { return []config.SetWSServerConfig{ // config.SetWSServerLogEnable("./logs", e.GetModuleFlag()+".log", zapcore.DebugLevel, consts.LogSplitHour), // config.EnablePprof(10100), } } type exampleCommand struct { } func (e exampleCommand) GetCommand() string { return "ping" } func (e exampleCommand) GetConfigOption() []config.SetCommandConfig { return []config.SetCommandConfig{config.ClosePushCommandErrorMessage()} } func (e exampleCommand) Execute(ctx *context.WSContext, data []byte) (interface{}, error) { return map[string]interface{}{"ping": "pong"}, nil }