public void record(uint session, SprotoTypeBase responseObj, object ud) { PlayService service = _ctx.QueryService <PlayService>(PlayService.Name); UnityEngine.Debug.Assert(service != null); service.OnRspRecord(responseObj); }
public SprotoTypeBase handshake(uint session, SprotoTypeBase requestObj) { UnityEngine.Debug.LogFormat("request hanshake."); S2cSprotoType.handshake.response responseObj = new S2cSprotoType.handshake.response(); responseObj.errorcode = Errorcode.SUCCESS; return(responseObj); }
public SprotoTypeBase OnBorn(SprotoTypeBase requestObj) { //S2cSprotoType.born.request obj = requestObj as S2cSprotoType.born.request; //if (obj != null) { // foreach (var b in obj.bs) { // uint session = (uint)b.session; // long ballid = b.ballid; // float radis = b.radis; // float length = b.length; // float width = b.width; // float height = b.height; // float pos_x = (float)BitConverter.Int64BitsToDouble(b.px); // float pos_y = (float)BitConverter.Int64BitsToDouble(b.py); // float pos_z = (float)BitConverter.Int64BitsToDouble(b.pz); // Vector3 pos = new Vector3(pos_x, pos_y, pos_z); // float dir_x = (float)BitConverter.Int64BitsToDouble(b.dx); // float dir_y = (float)BitConverter.Int64BitsToDouble(b.dy); // float dir_z = (float)BitConverter.Int64BitsToDouble(b.dz); // Vector3 dir = new Vector3(dir_x, dir_y, dir_z); // float vel = (float)BitConverter.Int64BitsToDouble(b.vel); // var ball = SetupBall(ballid, session, radis, length, width, height, pos, dir, vel); // var player = _playes[session]; // player.Add(ball); // } // S2cSprotoType.born.response responseObj = new S2cSprotoType.born.response(); // responseObj.errorcode = Errorcode.SUCCESS; // return responseObj; //} else { // throw new System.Exception("request obj is null"); //} return(null); }
// 进入房间这个协议, authudp public void join(uint session, SprotoTypeBase responseObj) { C2sSprotoType.join.response o = responseObj as C2sSprotoType.join.response; GameService service = (GameService)_ctx.QueryService(GameService.Name); service.Join(responseObj); }
public void SendMessage <T>(SprotoTypeBase rpcReq, RpcRspHandler rpcRspHandler = null) { session += 1; if (session >= maxSession) { session = 0; } if (rpcRspHandler != null) { AddHandler(session, rpcRspHandler); } byte[] message = rpcReq.encode(); MemoryStream ms = null; using (ms = new MemoryStream()) { ms.Position = 0; BinaryWriter writer = new BinaryWriter(ms); UInt16 msglen = Util.SwapUInt16((UInt16)(message.Length + 8)); writer.Write(msglen); int tag = protocol[typeof(T)]; sessionDict.Add((long)session, protocol[tag].Response.Value); tag = Util.SwapInt32(tag); writer.Write(tag); writer.Write(message); int swap_session = Util.SwapInt32(session); writer.Write(swap_session); writer.Flush(); byte[] payload = ms.ToArray(); NetworkManager.GetInstance().SendBytesWithoutSize(payload); } }
public void Born(SprotoTypeBase responseObj) { //C2sSprotoType.born.response obj = responseObj as C2sSprotoType.born.response; //if (obj != null && obj.errorcode == Errorcode.SUCCESS) { // var item = obj.b; // uint session = (uint)item.session; // long ballid = item.ballid; // float radis = item.radis; // float length = item.length; // float width = item.width; // float height = item.height; // float pos_x = (float)BitConverter.Int64BitsToDouble(item.px); // float pos_y = (float)BitConverter.Int64BitsToDouble(item.py); // float pos_z = (float)BitConverter.Int64BitsToDouble(item.pz); // Vector3 pos = new Vector3(pos_x, pos_y, pos_z); // float dir_x = (float)BitConverter.Int64BitsToDouble(item.dx); // float dir_y = (float)BitConverter.Int64BitsToDouble(item.dy); // float dir_z = (float)BitConverter.Int64BitsToDouble(item.dz); // Vector3 dir = new Vector3(dir_x, dir_y, dir_z); // float vel = (float)BitConverter.Int64BitsToDouble(item.vel); // var ball = SetupBall(ballid, session, radis, length, width, height, pos, dir, vel); // var player = _playes[session]; // player.Add(ball); // if (session == _mysession) { // _view.MoveTo(new Vector2(pos_x, pos_z)); // } //} }
public SprotoTypeBase OnTakeTurn(SprotoTypeBase requestObj) { S2cSprotoType.take_turn.request obj = requestObj as S2cSprotoType.take_turn.request; try { _service.Foreach((Player player) => { player.ClearCall(); }); _curidx = obj.your_turn; _ctx.Countdown(Timer.CLOCK, (int)obj.countdown, OnUpdateClock, null); _service.GetPlayer(obj.your_turn).TakeTurn(obj.type, obj.card, obj.countdown); // flame _service.Foreach((Player player) => { if (player.Idx == obj.your_turn) { player.PlayFlameCountdown(); } else { player.StopFlame(); } }); S2cSprotoType.take_turn.response responseObj = new S2cSprotoType.take_turn.response(); responseObj.errorcode = Errorcode.SUCCESS; return(responseObj); } catch (KeyNotFoundException ex) { UnityEngine.Debug.LogException(ex); S2cSprotoType.take_turn.response responseObj = new S2cSprotoType.take_turn.response(); responseObj.errorcode = Errorcode.FAIL; return(responseObj); } }
public void SendReq <T>(int tag, SprotoTypeBase obj, long session, object ud) { //UnityEngine.Debug.Assert(_tcpflag == true); if (_tcpflag) { if (session == 0) { byte[] d = _sendRequest.Invoke <T>(obj, null); UnityEngine.Debug.Assert(d != null); _tcp.Send(d, 0, d.Length); } else { byte[] d = _sendRequest.Invoke <T>(obj, session); UnityEngine.Debug.Assert(d != null); RspPg pg = new RspPg(); pg.Tag = tag; pg.Session = session; pg.Index = _index; pg.Version = _version; pg.Ud = ud; string key = idToHex(session); _rspPg[key] = pg; _tcp.Send(d, 0, d.Length); } } }
public void create(uint session, SprotoTypeBase responseObj, object ud) { GameService service = _ctx.QueryService <GameService>(GameService.Name); UnityEngine.Debug.Assert(service != null); service.OnRspCreate(responseObj); }
public SprotoTypeBase OnDeal(SprotoTypeBase requestObj) { S2cSprotoType.deal.request obj = requestObj as S2cSprotoType.deal.request; try { _oknum = 0; _fistidx = obj.firstidx; _fisttake = obj.firsttake; _curidx = _fistidx; _curtake = _fisttake; _takeround = 1; _take1time = 1; _service.GetPlayer(1).CS = obj.p1; _service.GetPlayer(2).CS = obj.p2; _service.GetPlayer(3).CS = obj.p3; _service.GetPlayer(4).CS = obj.p4; _service.GetPlayer(_curidx).Deal(); S2cSprotoType.deal.response responseObj = new S2cSprotoType.deal.response(); responseObj.errorcode = Errorcode.SUCCESS; return(responseObj); } catch (Exception ex) { UnityEngine.Debug.LogException(ex); S2cSprotoType.deal.response responseObj = new S2cSprotoType.deal.response(); responseObj.errorcode = Errorcode.SUCCESS; return(responseObj); } }
public void OnReceiveMsgFromNet(byte[] bytes) { // Debug.Log("NetMsgHandler:OnReceiveMsgFromNet : "+bytes.Length.ToString()); int content_size = bytes.Length - 5; if (content_size <= 0) { return; } char flag = BitConverter.ToChar(bytes, content_size); int cur_session = BitConverter.ToInt32(bytes, content_size + 1); cur_session = Util.SwapInt32(cur_session); // Debug.Log("NetMsgHandler:OnReceiveMsgFromNet flag:"+flag.ToString()+" session:"+cur_session.ToString()); RpcRspHandler rpcRspHandler = NetMsgDispatcher.GetHandler(cur_session); if (rpcRspHandler != null) { SprotoTypeBase receive_info = null; ProtocolFunctionDictionary.typeFunc GenResponse; sessionDict.TryGetValue(cur_session, out GenResponse); // if (flag == 1) // { receive_info = GenResponse(bytes, 0, content_size); // } // else // { // receive_info = GenResponse(null, 0, 0); // } rpcRspHandler(receive_info); } }
public SprotoTypeBase leave(uint session, SprotoTypeBase requestObj) { GameService service = _ctx.QueryService <GameService>(GameService.Name); UnityEngine.Debug.Assert(service != null); return(service.OnReqLeave(requestObj)); }
public void OnRspRecord(SprotoTypeBase responseObj) { C2sSprotoType.record.response obj = responseObj as C2sSprotoType.record.response; _r = obj.r; _controller = (GameController)_ctx.Push(typeof(GameController)); _controller.Type = GameType.PLAY; }
private void OnChatEvent(SprotoTypeBase evt) { SprotoType.chat_msg.request res = evt as SprotoType.chat_msg.request; Text item = GameObject.Instantiate(Item, Item.transform.parent, false); item.text = res.msg; item.gameObject.SetActive(true); }
public void OnRspHandshake(SprotoTypeBase responseObj) { C2sSprotoType.handshake.response o = responseObj as C2sSprotoType.handshake.response; long lag = _ts.GetTimeMs() - _last; // ms UnityEngine.Debug.LogFormat("handshake code {0}, tts: {1} ms", o.errorcode, lag); }
public void OnRspLeave(SprotoTypeBase responseObj) { C2sSprotoType.leave.response obj = responseObj as C2sSprotoType.leave.response; if (obj.errorcode == Errorcode.SUCCESS) { _ctx.Pop(); } }
public void FetchRecords(SprotoTypeBase responseObj) { AppContext ctx = _ctx as AppContext; EntityMgr mgr = ctx.GetEntityMgr(); Entity entity = mgr.MyEntity; entity.GetComponent <UComRecordMgr>().FetchRecords(responseObj); }
public SprotoTypeBase OnReqRadio(SprotoTypeBase requestObj) { S2cSprotoType.radio.request obj = requestObj as S2cSprotoType.radio.request; S2cSprotoType.radio.response responseObj = new S2cSprotoType.radio.response(); responseObj.errorcode = Errorcode.SUCCESS; return(responseObj); }
public void match(uint session, SprotoTypeBase responseObj, object ud) { MainController controller = _ctx.Peek <MainController>(); if (controller != null) { controller.OnRspMatch(responseObj); } }
public void leave(uint session, SprotoTypeBase responseObj, object ud) { GameService service = _ctx.QueryService <GameService>(GameService.Name); if (service != null) { service.OnRspLeave(responseObj); } }
public void Send(int msgno, SprotoTypeBase obj, eMessageRequestType messageType) { MemoryStream stream = new MemoryStream(ConnectionManager.Instance.serialize(obj, messageType)); Protocol protocol = new Protocol(); protocol.msgno = msgno; protocol.stream = stream; mSendBuffer.PushBack(protocol); }
public void handshake(uint session, SprotoTypeBase responseObj, object ud) { InitService service = _ctx.QueryService <InitService>(InitService.Name); if (service != null) { service.OnRspHandshake(responseObj); } }
public void handshake(uint session, SprotoTypeBase responseObj) { InitService service = (InitService)_ctx.QueryService("init"); if (service != null) { service.Handshake(responseObj); } }
public void OnAckFightEvents(SprotoTypeBase result) { SprotoType.scene_listen_fight_event.request req = new SprotoType.scene_listen_fight_event.request(); NetMsgDispatcher.GetInstance().SendMessage <Protocol.scene_listen_fight_event>(req, OnAckSceneObjInfoChange); SprotoType.scene_listen_fight_event.response ack = result as SprotoType.scene_listen_fight_event.response; if (ack == null) { return; } }
public SprotoTypeBase OnReqLeave(SprotoTypeBase requestObj) { //S2cSprotoType.leave.request obj = requestObj as S2cSprotoType.leave.request; _joined--; _online--; S2cSprotoType.leave.response responseObj = new S2cSprotoType.leave.response(); responseObj.errorcode = Errorcode.SUCCESS; return(responseObj); }
private void OnPushChat(SprotoTypeBase evt) { SprotoType.chat_msgs.request res = evt as SprotoType.chat_msgs.request; foreach (string each in res.msgs) { Text item = GameObject.Instantiate(Item, Item.transform.parent, false); item.text = each; item.gameObject.SetActive(true); } }
public SprotoTypeBase OnReqAuthed(SprotoTypeBase requestObj) { S2cSprotoType.authed.request obj = requestObj as S2cSprotoType.authed.request; _online++; S2cSprotoType.authed.response responseObj = new S2cSprotoType.authed.response(); responseObj.errorcode = Errorcode.SUCCESS; return(responseObj); }
private void Update() { Protocol protocol = NetworkManager.Instance.GetRecvMessage(); if (protocol != null) { SprotoTypeBase sproto = ConnectionManager.Instance.deserialize(protocol.stream.ToArray(), Convert.ToInt32(protocol.stream.Length)); Debug.Log("Receievd: " + sproto.GetType()); } }
public void ListenMessage <T>(SprotoTypeBase rpcReq, RpcRspHandler rpcRspHandler = null) { RpcRspHandler on_ack = null; on_ack = (SprotoTypeBase result) => { rpcRspHandler(result); this.SendMessage <T>(rpcReq, on_ack); }; this.SendMessage <T>(rpcReq, on_ack); }
public void FetchSysmail(SprotoTypeBase responseObj) { EntityMgr mgr = ((AppContext)_ctx).GetEntityMgr(); mgr.MyEntity.GetComponent <UComSysInbox>().FetchSysmail(responseObj); C2sSprotoType.fetchsysmail.response obj = responseObj as C2sSprotoType.fetchsysmail.response; if (_service == null) { _service = _ctx.QueryService <InitService>(InitService.Name); } }