This commit is contained in:
aozhiwei 2023-08-10 22:18:38 +08:00
parent 0555278fbb
commit e2ac9b3814
3 changed files with 44 additions and 3 deletions

View File

@ -7,11 +7,14 @@ import (
"q5"
"f5"
"cs"
proto "github.com/golang/protobuf/proto"
)
type WSPListener_ struct {
listener net.Listener
ch <-chan *q5.MsgHdr
msgList q5.ListHead
}
var WSPListener = new (WSPListener_)
@ -43,13 +46,15 @@ func (this *WSPListener_) accept() {
}
/*
struct PackHead
struct WSProxyPackHead_C
{
unsigned short packlen;
unsigned short msgid;
unsigned int seqid;
unsigned short magic_code;
unsigned short ext_len;
unsigned short socket_handle;
unsigned long ip_saddr;
};
*/
func (this *WSPListener_) socketRead(conn net.Conn) {
@ -93,3 +98,34 @@ func (this *WSPListener_) parseNetPkt() {
}
}
}
/*
struct WSProxyPackHead_S
{
unsigned short packlen;
unsigned short msgid;
unsigned int seqid;
unsigned short magic_code;
unsigned short rpc_error_code;
unsigned short socket_handle;
unsigned short ext_len;
};
*/
func (this *WSPListener_) sendProxyMsg(conn net.Conn, socketHandle uint16, msg proto.Message) {
netMsg := msg.(q5.NetMsg)
msgId := netMsg.GetNetMsgId()
msgData, err := proto.Marshal(msg)
if err != nil {
return
}
buff := make([]byte, len(msgData) + 12)
buff[0] = byte(len(msgData) & 0xFF)
buff[1] = byte(len(msgData) & 0xFFFF >> 16)
buff[2] = byte(msgId & 0xFF)
buff[3] = byte(msgId >> 16)
buff[9] = byte(socketHandle & 0xFF)
buff[10] = byte(socketHandle >> 16)
copy(msgData[:], buff[12:])
conn.Write(buff)
}

View File

@ -64,3 +64,7 @@ func init() {
},
};
}
func (x *CMLogin) GetNetMsgId() uint16 {
return uint16(CMMessageIdE__CMLogin);
}

View File

@ -12,5 +12,6 @@ type PlayerMgr_ struct {
var PlayerMgr = new (PlayerMgr_)
func (this *PlayerMgr_) CMLogin(hdr *q5.MsgHdr, msg *cs.CMLogin) {
rspMsg := cs.SMLogin{}
rspMsg := &cs.SMLogin{}
WSPListener.sendProxyMsg(hdr.Conn, 0, rspMsg)
}