1
This commit is contained in:
parent
0555278fbb
commit
e2ac9b3814
@ -7,11 +7,14 @@ import (
|
|||||||
"q5"
|
"q5"
|
||||||
"f5"
|
"f5"
|
||||||
"cs"
|
"cs"
|
||||||
|
|
||||||
|
proto "github.com/golang/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
type WSPListener_ struct {
|
type WSPListener_ struct {
|
||||||
listener net.Listener
|
listener net.Listener
|
||||||
ch <-chan *q5.MsgHdr
|
ch <-chan *q5.MsgHdr
|
||||||
|
msgList q5.ListHead
|
||||||
}
|
}
|
||||||
|
|
||||||
var WSPListener = new (WSPListener_)
|
var WSPListener = new (WSPListener_)
|
||||||
@ -43,13 +46,15 @@ func (this *WSPListener_) accept() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
struct PackHead
|
struct WSProxyPackHead_C
|
||||||
{
|
{
|
||||||
unsigned short packlen;
|
unsigned short packlen;
|
||||||
unsigned short msgid;
|
unsigned short msgid;
|
||||||
unsigned int seqid;
|
unsigned int seqid;
|
||||||
unsigned short magic_code;
|
unsigned short magic_code;
|
||||||
unsigned short ext_len;
|
|
||||||
|
unsigned short socket_handle;
|
||||||
|
unsigned long ip_saddr;
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
func (this *WSPListener_) socketRead(conn net.Conn) {
|
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)
|
||||||
|
}
|
||||||
|
@ -64,3 +64,7 @@ func init() {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *CMLogin) GetNetMsgId() uint16 {
|
||||||
|
return uint16(CMMessageIdE__CMLogin);
|
||||||
|
}
|
||||||
|
@ -12,5 +12,6 @@ type PlayerMgr_ struct {
|
|||||||
var PlayerMgr = new (PlayerMgr_)
|
var PlayerMgr = new (PlayerMgr_)
|
||||||
|
|
||||||
func (this *PlayerMgr_) CMLogin(hdr *q5.MsgHdr, msg *cs.CMLogin) {
|
func (this *PlayerMgr_) CMLogin(hdr *q5.MsgHdr, msg *cs.CMLogin) {
|
||||||
rspMsg := cs.SMLogin{}
|
rspMsg := &cs.SMLogin{}
|
||||||
|
WSPListener.sendProxyMsg(hdr.Conn, 0, rspMsg)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user