Exemplo n.º 1
0
        void OnReceivedMsg(string receivedMsg)
        {
            var data = JsonUtility.FromJson <T>(receivedMsg);

            if ((data.RequestID == ownRequestID) && (data.UID != uid))
            {
                Debug.Log("ArenaReceiver Received Msg |> = " + receivedMsg);
                _msgReceived = true;
                _receivedMsg = receivedMsg;

                Debug.Log("AnsuzTask Received Msg |> = " + _receivedMsg);

                AnsuzResponse jsonData = JsonUtility.FromJson <AnsuzResponse>(_receivedMsg);

                if (jsonData.ResponseID < 0)
                {
                    Debug.Log("Errcode Number:" + jsonData.ResponseID);
                    Ansuz.Instance.Geterrorcode();
                }

                string errcodestr = jsonData.ResponseMsg;
                if (errcodestr == "time too short or too long")
                {
                    Debug.Log("Errcode String:" + errcodestr);
                    Ansuz.Instance.Geterrorstring();
                }
            }
        }
Exemplo n.º 2
0
        void OnReceivedMsg(MqttMsgPublishEventArgs mqttMsg)
        {
            var receivedMsg = Encoding.UTF8.GetString(mqttMsg.Message);
            var data        = JsonUtility.FromJson <T>(receivedMsg);

            ///if (data.RequestID == ansuz.UID )
            {
                _msgReceived = true;
                _receivedMsg = receivedMsg;

                Debug.Log("AnsuzTask Received Msg |> = " + _receivedMsg);

                AnsuzResponse jsonData = JsonUtility.FromJson <AnsuzResponse>(_receivedMsg);

                if (jsonData.ResponseID < 0)
                {
                    Debug.Log("Errcode Number:" + jsonData.ResponseID);
                    Ansuz.Instance.Geterrorcode();
                }

                string errcodestr = jsonData.ResponseMsg;
                if (errcodestr == "time too short or too long")
                {
                    Debug.Log("Errcode String:" + errcodestr);
                    Ansuz.Instance.Geterrorstring();
                }
            }
        }
Exemplo n.º 3
0
        public IEnumerator PublishMessage(IObserver <T> observer)
        {
            bool published = Ansuz.Instance.Publish(_requestJson);

            if (!published)
            {
                yield break;
            }

            ansuz.OnReceivedMsg += OnReceivedMsg;

            while (_timer < TimeoutSpan && !_msgReceived)
            {
                _timer += Time.deltaTime;
                yield return(null);
            }

            if (_msgReceived)
            {
                T response = new T();
                JsonUtility.FromJsonOverwrite(_receivedMsg, response);
                observer.OnNext(response);
            }
            else
            {
                if (_receivedMsg == null)
                {
                    observer.OnError(new Exception("receive message is null"));
                    yield break;
                }
                else
                {
                    AnsuzResponse jsonData = JsonUtility.FromJson <AnsuzResponse>(_receivedMsg);
                    if (jsonData.ResponseID == 7)
                    {
                        yield break;
                    }

                    observer.OnError(new Exception("Timeout |> msg = " + jsonData.ResponseMsg + " | requestJson:" + _requestJson));
                }

                Ansuz.Instance.GettimeOut();
            }

            ansuz.OnReceivedMsg -= OnReceivedMsg;
            observer.OnCompleted();
        }