Gogs 5 ماه پیش
والد
کامیت
4cd1e19cd1

+ 2 - 0
.vscode/settings.json

@@ -0,0 +1,2 @@
+{
+}

+ 1 - 1
bin/conf/server.json

@@ -1,6 +1,6 @@
 {
 	"LogLevel": "debug",
 	"LogPath": "",
-	"TCPAddr": "127.0.0.1:3563",
+	"WSAddr": "127.0.0.1:3653",
 	"MaxConnNum": 20000
 }

+ 3 - 2
src/server/conf/json.go

@@ -2,8 +2,9 @@ package conf
 
 import (
 	"encoding/json"
+	"os"
+
 	"github.com/name5566/leaf/log"
-	"io/ioutil"
 )
 
 var Server struct {
@@ -19,7 +20,7 @@ var Server struct {
 }
 
 func init() {
-	data, err := ioutil.ReadFile("conf/server.json")
+	data, err := os.ReadFile("../../bin/conf/server.json")
 	if err != nil {
 		log.Fatal("%v", err)
 	}

+ 32 - 0
src/server/game/internal/handler.go

@@ -1 +1,33 @@
 package internal
+
+import (
+	"reflect"
+	"server/msg"
+
+	"github.com/name5566/leaf/gate"
+	"github.com/name5566/leaf/log"
+)
+
+func init() {
+	// 向当前模块(game 模块)注册 Hello 消息的消息处理函数 handleHello
+	handler(&msg.Hello{}, handleHello)
+}
+
+func handler(m interface{}, h interface{}) {
+	skeleton.RegisterChanRPC(reflect.TypeOf(m), h)
+}
+
+func handleHello(args []interface{}) {
+	// 收到的 Hello 消息
+	m := args[0].(*msg.Hello)
+	// 消息的发送者
+	a := args[1].(gate.Agent)
+
+	// 输出收到的消息的内容
+	log.Debug("hello %v", m.Name)
+
+	// 给发送者回应一个 Hello 消息
+	a.WriteMsg(&msg.Hello{
+		Name: "client",
+	})
+}

+ 6 - 1
src/server/gate/router.go

@@ -1,5 +1,10 @@
 package gate
 
-func init() {
+import (
+	"server/game"
+	"server/msg"
+)
 
+func init() {
+	msg.Processor.SetRouter(&msg.Hello{}, game.ChanRPC)
 }

+ 7 - 0
src/server/go.mod

@@ -0,0 +1,7 @@
+module server
+
+go 1.23.1
+
+require github.com/name5566/leaf v0.0.0-20221021105039-af71eb082cda
+
+require github.com/gorilla/websocket v1.5.3 // indirect

+ 4 - 0
src/server/go.sum

@@ -0,0 +1,4 @@
+github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
+github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/name5566/leaf v0.0.0-20221021105039-af71eb082cda h1:5S+9luohX8Whu/4VreRe4E0bHSSuJ4hyIGJc1nvNQzQ=
+github.com/name5566/leaf v0.0.0-20221021105039-af71eb082cda/go.mod h1:JrOIxq3vDxvtuEI7Kmm2yqkuBfuT9DMLFMnCyYHLaKM=

+ 3 - 2
src/server/main.go

@@ -1,12 +1,13 @@
 package main
 
 import (
-	"github.com/name5566/leaf"
-	lconf "github.com/name5566/leaf/conf"
 	"server/conf"
 	"server/game"
 	"server/gate"
 	"server/login"
+
+	"github.com/name5566/leaf"
+	lconf "github.com/name5566/leaf/conf"
 )
 
 func main() {

+ 6 - 2
src/server/msg/msg.go

@@ -1,11 +1,15 @@
 package msg
 
 import (
-	"github.com/name5566/leaf/network"
+	"github.com/name5566/leaf/network/json"
 )
 
-var Processor network.Processor
+var Processor = json.NewProcessor()
 
 func init() {
+	Processor.Register(&Hello{})
+}
 
+type Hello struct {
+	Name string
 }