diff --git a/server/imserver/app.go b/server/imserver/app.go index 8dbd0d07..9fffb267 100644 --- a/server/imserver/app.go +++ b/server/imserver/app.go @@ -2,6 +2,7 @@ package main import ( "cs" + "ss" "f5" "mt" "q5" @@ -39,15 +40,25 @@ func (this *App) Update() { next := this.netMsgQueue.WorkList.Next() hdr, ok := next.GetData().(*f5.MsgHdr) if ok { - handler := cs.GetNetMsgHandler(hdr.MsgId) - if handler != nil { - switch handler.HandlerId { - case PLAYER_MGR_HANDLER_ID: - cs.DispatchMsg(handler, hdr, playerMgr) - case PLAYER_HANDLER_ID: - player := playerMgr.getPlayerBySocket(hdr.GetSocket()) - if player != nil { - cs.DispatchMsg(handler, hdr, player) + if hdr.MsgId < 100 { + handler := ss.GetNetMsgHandler(hdr.MsgId) + if handler != nil { + switch handler.HandlerId { + case WSP_LISTENER_HANDLER_ID: + ss.DispatchMsg(handler, hdr, wspListener) + } + } + } else { + handler := cs.GetNetMsgHandler(hdr.MsgId) + if handler != nil { + switch handler.HandlerId { + case PLAYER_MGR_HANDLER_ID: + cs.DispatchMsg(handler, hdr, playerMgr) + case PLAYER_HANDLER_ID: + player := playerMgr.getPlayerBySocket(hdr.GetSocket()) + if player != nil { + cs.DispatchMsg(handler, hdr, player) + } } } } diff --git a/server/imserver/constant.go b/server/imserver/constant.go index 718c3027..4e2a5769 100644 --- a/server/imserver/constant.go +++ b/server/imserver/constant.go @@ -3,6 +3,7 @@ package main const ( PLAYER_MGR_HANDLER_ID = 1 PLAYER_HANDLER_ID = 2 + WSP_LISTENER_HANDLER_ID = 3 ) const ( diff --git a/server/imserver/handlermgr.go b/server/imserver/handlermgr.go index 15452e88..d57fd441 100644 --- a/server/imserver/handlermgr.go +++ b/server/imserver/handlermgr.go @@ -9,7 +9,8 @@ type HandlerMgr struct { } func (this *HandlerMgr) init() { - ss.RegHandlerId(int(ss.SSMessageIdE__SS_Ping), PLAYER_MGR_HANDLER_ID) + ss.RegHandlerId(int(ss.SSMessageIdE__SS_Ping), WSP_LISTENER_HANDLER_ID) + ss.RegHandlerId(int(ss.SSMessageIdE__SS_WSP_SocketDisconnect), WSP_LISTENER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMPing), PLAYER_MGR_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMLogin), PLAYER_MGR_HANDLER_ID) diff --git a/server/imserver/proto/ss_msgid.proto b/server/imserver/proto/ss_msgid.proto index 08a0dc6c..7a214f2a 100644 --- a/server/imserver/proto/ss_msgid.proto +++ b/server/imserver/proto/ss_msgid.proto @@ -10,8 +10,5 @@ enum SSMessageId_e _SS_Pong = 9; _SS_WSP_SocketDisconnect = 10; - _SS_WSP_RequestTargetServer = 11; - _SS_MS_ResponseTargetServer = 12; _SS_ForceCloseSocket = 13; - } diff --git a/server/imserver/proto/ss_proto.proto b/server/imserver/proto/ss_proto.proto index 64351816..8b6f0353 100644 --- a/server/imserver/proto/ss_proto.proto +++ b/server/imserver/proto/ss_proto.proto @@ -16,22 +16,6 @@ message SS_WSP_SocketDisconnect { } -message SS_WSP_RequestTargetServer -{ - optional int64 context_id = 1; - optional string account_id = 2; - optional string team_id = 3; -} - -message SS_MS_ResponseTargetServer -{ - optional int32 error_code = 1; - optional string error_msg = 2; - optional int64 context_id = 3; - optional string host = 4; - optional int32 port = 5; -} - message SS_ForceCloseSocket { } diff --git a/server/imserver/wsplistener.go b/server/imserver/wsplistener.go index b9e7deb5..2ea868d6 100644 --- a/server/imserver/wsplistener.go +++ b/server/imserver/wsplistener.go @@ -7,12 +7,14 @@ import ( "q5" "f5" "cs" + "ss" "mt" proto "github.com/golang/protobuf/proto" ) type WSPListener struct { + ss.MsgHandlerImpl listener net.Listener ch chan *f5.MsgHdr msgList q5.ListHead @@ -34,6 +36,12 @@ func (this *WSPListener) init() { func (this *WSPListener) unInit() { } +func (this *WSPListener) SS_ping(hdr *f5.MsgHdr, msg *ss.SS_Ping) { +} + +func (this *WSPListener) SS_WSP_SocketDisconnect(hdr *f5.MsgHdr, msg *ss.SS_WSP_SocketDisconnect) { +} + func (this *WSPListener) accept() { fmt.Println("accpet") for {