From 072925f19eb0e6eab1b17611aff15696e70661c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Wed, 2 Jul 2025 23:29:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(socket):=20=E4=BF=AE=E6=94=B9=E7=AB=AF?= =?UTF-8?q?=E5=8F=A3=E5=B9=B6=E4=BC=98=E5=8C=96=20Socket=20=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 launch.json 中的端口设置,将 30000 改为 27777 - 在 ServerEvent.go 中添加 OnClose 方法,处理客户端断开连接的情况 - 在 main.go 中启用 CORS 支持 - 在 middleware.go 中注释掉 socket.ReadLoop 的调用 --- .vscode/launch.json | 2 +- common/socket/ServerEvent.go | 8 +++++++- logic/main.go | 2 +- modules/base/middleware/middleware.go | 1 + 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 87e66b851..f4adc5762 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -19,7 +19,7 @@ "request": "launch", "mode": "auto", "cwd": "${workspaceFolder}", - "args": ["-port=30000"], + "args": ["-port=27777"], "program": "${workspaceFolder}/logic" } diff --git a/common/socket/ServerEvent.go b/common/socket/ServerEvent.go index f771ff258..9c20e0788 100644 --- a/common/socket/ServerEvent.go +++ b/common/socket/ServerEvent.go @@ -28,6 +28,12 @@ func (s *Server) Stop() error { return nil } +func (s *Server) OnClose(c gnet.Conn, _ error) (action gnet.Action) { + //fmt.Println(glog.GetStack(), c.Context().(*entity.ClientData).Player.UserID, "断开连接") + + //关闭连接 + return +} func (s *Server) OnBoot(eng gnet.Engine) gnet.Action { s.eng = eng @@ -111,7 +117,7 @@ func handle(c gnet.Conn) { c.Write([]byte(CROSS_DOMAIN)) c.Discard(len(TEXT)) - clientdata.IsCrossDomain = true + clientdata.IsCrossDomain = true //TODO 待修复未成功切换bug return } diff --git a/logic/main.go b/logic/main.go index 5531c82b1..9a25b5f3f 100644 --- a/logic/main.go +++ b/logic/main.go @@ -25,5 +25,5 @@ func Start(port string) { head := handler.NewTomeeHandler() head.Callback = controller.Recv - socket.NewServer(socket.WithPort(port), socket.WithSocketHandler(head)).Start() + socket.NewServer(socket.WithPort(port), socket.WithCORS(), socket.WithSocketHandler(head)).Start() } diff --git a/modules/base/middleware/middleware.go b/modules/base/middleware/middleware.go index a97896e7b..27caff8f9 100644 --- a/modules/base/middleware/middleware.go +++ b/modules/base/middleware/middleware.go @@ -75,6 +75,7 @@ func init() { // ants.Submit(func() { // socket.ReadLoop() // }) + // ants.Submit(func() { socket.ReadLoop() }) go socket.ReadLoop() })