// 自定义服务广播 private void OnRecvFromGameSvr(DecodeBstResult bst, string seq) { var body = new RecvFromGameSvrBst(); body.MergeFrom(bst.Body); var eve = new BroadcastEvent(bst.Body, seq); this._responses.OnRecvFromGameSvr(body.RoomId, eve); }
/** * 自定义服务广播 */ public void OnRecvFromGameSvr(string id, BroadcastEvent eve) { if (!this.MatchId(id)) { return; } try { var bst = new RecvFromGameSvrBst(); bst.MergeFrom((ByteString)eve.Data); eve.Data = bst; _room.OnRecvFromGameSvr?.Invoke(eve); } catch (Exception e) { Debugger.Log(e.ToString()); } }
void InitBroadcast() { // 设置收帧广播回调函数 Global.Room.OnRecvFrame = eve => { RecvFrameBst bst = (RecvFrameBst)eve.Data; AddAction(() => this.OnFrame(bst.Frame)); }; // 设置消息接收广播回调函数 Global.Room.OnRecvFromClient = eve => { RecvFromClientBst bst = (RecvFromClientBst)eve.Data; }; // 设置服务器接收广播回调函数 Global.Room.OnRecvFromGameSvr = eve => { RecvFromGameSvrBst bst = (RecvFromGameSvrBst)eve.Data; }; // 设置房间改变广播回调函数 Global.Room.OnChangeRoom = eve => { this.OnChangeRoom(); }; /* //no match for now * Room.OnMatch = eve => * { * RefreshRoomList(); * Debugger.Log("on match!"); * }; * * Room.OnCancelMatch = eve => * { * RefreshRoomList(); * Debugger.Log("on cancel match! "); * }; */ }