public HttpNetDriver(string inGameId) { string gameId = inGameId; // Example URL ? _wwwPollingRequest = new AsyncPollingWebLoader(_coreGamserverUrl + "/match/" + gameId + "/player/" + _userId + "/inbox"); _wwwSendMessageRequest = new AsyncPostWebLoader(_coreGamserverUrl + "/match/" + gameId + "/send"); _wwwPollingRequest.OnCompleteLoading += OnServerPacker; _wwwPollingRequest.OnFailedLoading += OnServerPacker; _running = true; _coreGamserverUrl = GameManager.Instance.GAMESERVERURL; }
public void OnServerPacker(AssetLoadRequest inValue) { if (!_running) { return; } if (!inValue.HasFailed) { AsyncPollingWebLoader asyncPollingWebLoader = inValue as AsyncPollingWebLoader; byte[] jsonData = asyncPollingWebLoader?.WebData; if (jsonData != null) { string jsonString = Encoding.UTF8.GetString(jsonData); try { GameMessageList mm = new GameMessageList(); ThriftMessageSerialize.DeSerialize(mm, jsonString); foreach (string item in mm.Messages) { LibCommon.Network.Types.GameMessage gm = new LibCommon.Network.Types.GameMessage(); ThriftMessageSerialize.DeSerialize(gm, item); ClientQueue.Enqueue(gm); } } catch (Exception ex) { Debug.LogErrorFormat("Error Message: {0} {1}", ex.Message, jsonString); } } } _requestingCurrently = false; }