概述
给玩家发送消息都是通过session.Send实现,但在room.QTable做了一下封装,能够更方便使用
[!TIP|style:flat|label:注意事项|iconVisibility:hidden] 通过room.QTable函数发消息跟session.Send区别在于,room.QTable函数会先将要发送的消息都存放到消息队列中 待本周期执行完以后再统一发送给客户端,发送之前会合并网关,如多个用户在同一个网关且发送的消息相同则只会进行一次RPC操作
给多个玩家发送消息
SendCallBackMsg(players []string, topic string, body []byte) error
其中players是session().GetSessionId() 列表
给桌子内所有玩家广播消息
NotifyCallBackMsg(topic string, body []byte) error
不关注结果的发送消息
SendCallBackMsgNR(players []string, topic string, body []byte) error
NotifyCallBackMsgNR(topic string, body []byte) error
通过session查找BasePlayer
[!TIP|style:flat|label:注意事项|iconVisibility:hidden] 对于游客用户使用session.GetSessionId()查找,对于登陆用户使用session().GetUserId() 这样的做法在于如果登陆用户断线重连网关切换了,通过session().GetUserId()依然可以找到BasePlayer
FindPlayer(session gate.Session) BasePlayer