```
feat(rpc): 更新客户端映射变量命名以符合导出规则 将 rpc.go 中的 clientmap 变量重命名为 Clientmap,使其可被其他包访问。 同时修复了拼写错误 useid1 -> userid,并在 RegisterLogic 方法中调用 Refurh 函数。 fix
This commit is contained in:
@@ -3,6 +3,7 @@ package rpc
|
||||
import (
|
||||
"blazing/common/data/share"
|
||||
"blazing/cool"
|
||||
|
||||
"blazing/modules/base/service"
|
||||
"context"
|
||||
"fmt"
|
||||
@@ -17,7 +18,7 @@ import (
|
||||
|
||||
var rpcport = gconv.String(cool.Config.RPC)
|
||||
|
||||
var clientmap = make(map[uint16]*ClientHandler) //客户端map
|
||||
var Clientmap = make(map[uint16]*ClientHandler) //客户端map
|
||||
|
||||
type ClientHandler struct {
|
||||
KickPerson func(uint32) error //踢人,这里是返回具体的logic
|
||||
@@ -36,7 +37,7 @@ func (h *ServerHandler) Kick(ctx context.Context, userid uint32) error {
|
||||
if err != nil {
|
||||
return fmt.Errorf("user not found", err)
|
||||
}
|
||||
cl, ok := clientmap[useid1]
|
||||
cl, ok := Clientmap[useid1]
|
||||
if ok {
|
||||
err := cl.KickPerson(userid) //实现指定服务器踢人
|
||||
if err != nil {
|
||||
@@ -49,18 +50,20 @@ func (h *ServerHandler) Kick(ctx context.Context, userid uint32) error {
|
||||
// 注册logic服务器
|
||||
func (h *ServerHandler) RegisterLogic(ctx context.Context, id, port uint16) error {
|
||||
cool.Loger.Debug(context.Background(), "注册logic服务器", id, port)
|
||||
|
||||
//TODO 待修复滚动更新可能导致的玩家可以同时在旧服务器和新服务器同时在线的bug
|
||||
revClient, ok := jsonrpc.ExtractReverseClient[ClientHandler](ctx)
|
||||
if !ok {
|
||||
return fmt.Errorf("no reverse client")
|
||||
}
|
||||
t, _ := blservice.NewLoginServiceService().GetServerID(id)
|
||||
aa, ok := clientmap[t]
|
||||
aa, ok := Clientmap[t]
|
||||
if ok && aa != nil { //如果已经存在且这个端口已经被存过
|
||||
aa.QuitSelf(0)
|
||||
}
|
||||
clientmap[port] = &revClient
|
||||
Clientmap[port] = &revClient
|
||||
|
||||
Refurh()
|
||||
return nil
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user