public void SendToken(IToken aToken, PendingResponseEventHandler aPendingResponse) { CURRENT_TOKEN_ID++; aToken.SetInt(WebSocketConstants.UTID, CURRENT_TOKEN_ID); PendingResponseQueue lPRQI = new PendingResponseQueue(aToken, aPendingResponse); mPendingResponseQueue.Add(CURRENT_TOKEN_ID, lPRQI); aToken.IsBinary = false; SendTokenOption(aToken, -1); }
protected override void OnReciveTextPacket(WebSocketProtocol aSender, IWebSocketPacket e) { if (recivePacket != null) { recivePacket(aSender, e); } try { JsonObject lTextjson = new JsonObject(e.GetString()); IToken lToken = PacketToToken(e); string lType = lToken.GetType(); lock (PendingResponseQueue) { if (!lType.Equals(WebSocketMessage.WELCOME) && !lType.Equals(WebSocketMessage.GOODBYTE)) { try { int lUTID = lToken.GetInt(WebSocketMessage.UTID); int lCode = lToken.GetInt(WebSocketMessage.CODE); PendingResponseQueue lPRQI = PendingResponseQueue[lUTID]; if (lPRQI != null) { bool lSuccess = false; if (lCode == 0) { lSuccess = true; } TokenResponse lResponse = new TokenResponse(mPendingResponseQueue[lUTID].Token, lToken, lSuccess); lPRQI.PendingResponse.Invoke(this, lResponse); PendingResponseQueue.Remove(lUTID); } } catch (Exception) { } } } OnReciveTokenText(lToken); } catch (Exception) { } }