Пример #1
0
        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;
        }
Пример #2
0
        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;
        }