private void DispatchRequest(ISFSObject requestObject) { IMessage message = new Message(); if (requestObject.IsNull(CONTROLLER_ID)) { throw new SFSCodecError("Request rejected: No Controller ID in request!"); } if (requestObject.IsNull(ACTION_ID)) { throw new SFSCodecError("Request rejected: No Action ID in request!"); } message.Id = Convert.ToInt32(requestObject.GetShort(ACTION_ID)); message.Content = requestObject.GetSFSObject(PARAM_ID); message.IsUDP = requestObject.ContainsKey(UDP_PACKET_ID); if (message.IsUDP) { message.PacketId = requestObject.GetLong(UDP_PACKET_ID); } int @byte = requestObject.GetByte(CONTROLLER_ID); IController controller = bitSwarm.GetController(@byte); if (controller == null) { throw new SFSError("Cannot handle server response. Unknown controller, id: " + @byte); } controller.HandleMessage(message); }
public void HandleHandShake(BaseEvent evt) { ISFSObject iSFSObject = evt.Params["message"] as ISFSObject; if (iSFSObject.IsNull(BaseRequest.KEY_ERROR_CODE)) { sessionToken = iSFSObject.GetUtfString(HandshakeRequest.KEY_SESSION_TOKEN); socketClient.CompressionThreshold = iSFSObject.GetInt(HandshakeRequest.KEY_COMPRESSION_THRESHOLD); socketClient.MaxMessageSize = iSFSObject.GetInt(HandshakeRequest.KEY_MAX_MESSAGE_SIZE); if (debug) { log.Debug($"Handshake response: tk => {sessionToken}, ct => {socketClient.CompressionThreshold}"); } if (socketClient.IsReconnecting) { socketClient.IsReconnecting = false; DispatchEvent(new SFSEvent(SFSEvent.CONNECTION_RESUME)); return; } isConnecting = false; Hashtable hashtable = new Hashtable(); hashtable["success"] = true; DispatchEvent(new SFSEvent(SFSEvent.CONNECTION, hashtable)); } else { short @short = iSFSObject.GetShort(BaseRequest.KEY_ERROR_CODE); string errorMessage = SFSErrorCodes.GetErrorMessage(@short, log, iSFSObject.GetUtfStringArray(BaseRequest.KEY_ERROR_PARAMS)); Hashtable hashtable2 = new Hashtable(); hashtable2["success"] = false; hashtable2["errorMessage"] = errorMessage; hashtable2["errorCode"] = @short; DispatchEvent(new SFSEvent(SFSEvent.CONNECTION, hashtable2)); } }
public virtual void OnGetPlayers(ISFSObject responseData) { if (!responseData.IsNull("playerlist")) { string[] playerStr = responseData.GetUtfStringArray("playerlist"); UserListCtrl.RefreshPlayer(playerStr); } }
public override void GameResponseStatus(int type, ISFSObject response) { if (response.ContainsKey("playerlist") && !response.IsNull("playerlist")) { var playerStr = response.GetUtfStringArray("playerlist"); UserListCtrl.RefreshPlayer(playerStr); } var gdata = App.GetGameData <BtwGameData>(); switch ((BtwRequestType)type) { case BtwRequestType.Bet: YxDebug.Log("-----------------下注--------------"); WaitWin.Hide(); BetCtrl.Bet(response); ShowNumCtrl.RefreshNum(response); break; case BtwRequestType.BankerList: YxDebug.Log("-----------------上庄列表--------------"); WaitWin.Hide(); UserListCtrl.RefreshBanker(response); ProgressCtrl.SetNum(response); BetCtrl.ShowChip(); break; case BtwRequestType.BeginBet: YxDebug.Log("-----------------开始下注--------------"); WaitWin.Hide(); gdata.BeginBet = true; CardsCtrl.ReSetPonits(); CardsCtrl.gameObject.SetActive(false); ShowNumCtrl.Reset(); ReSetGame(); BetCtrl.ShowChip(); ProgressCtrl.ReSetCountdown(15); ProgressCtrl.BeginCountdown(); ApplyCtrl.RefreshBanker(); TimeBet.gameObject.SetActive(true); YxMessageTip.Show("开始下注"); break; case BtwRequestType.EndBet: YxDebug.Log("-----------------停止下注--------------"); gdata.BeginBet = false; BetCtrl.HideChip(); ProgressCtrl.EndCountdown(); TimeBet.gameObject.SetActive(false); WaitWin.Hide(); break; case BtwRequestType.GiveCards: YxDebug.Log("-----------------发牌--------------"); CardsCtrl.BeginGiveCards(response); CardsCtrl.gameObject.SetActive(true); WaitWin.Hide(); break; case BtwRequestType.Result: YxDebug.Log("-----------------结算--------------"); gdata.GStatus = YxEGameStatus.Normal; if (ResultWin != null) { ResultWin.ShowWithData(response); } UserListCtrl.RefreshBanker(response); ProgressCtrl.SetNum(response); ApplyCtrl.HideApplyBanker(); WaitWin.Hide(); break; } }