예제 #1
0
        private void HandshakeHandler(Package package)
        {
            Message <Heartbeat> msg = MessageProtocol.Decode <Heartbeat>(package.buff);

            if (msg.err > 0)
            {
                handshakeTcs.TrySetResult(false);
                OnError?.Invoke(msg.errMsg);
                return;
            }

            if (heartBeatServiceGo == null)
            {
                GameObject go = new GameObject();
                go.name            = "heartBeatServiceGo";
                heartBeatServiceGo = go.AddComponent(typeof(HeartBeatServiceGameObject)) as HeartBeatServiceGameObject;
                heartBeatServiceGo.Setup(msg.info.heartbeat, OnServerTimeout, socket);
            }
            else
            {
                OnReconected?.Invoke();
                heartBeatServiceGo.ResetTimeout(msg.info.heartbeat);
            }//*/
            handshakeTcs.TrySetResult(true);
        }
예제 #2
0
        public async UniTask <Message <S> > RequestAsync <T, S>(string route, T info = default, string modelName = null)
        {
            uint rqID = (uint)Interlocked.Increment(ref RqID);

            try
            {
#if SOCKET_DEBUG
                Debug.Log(string.Format("[{0}][Request] -->> [{1}] {2}", rqID, route, JsonUtility.ToJson(info)));
#endif
                Package pack = await protocol.RequestAsync <T>(rqID, route, info, modelName);

                Message <S> msg = MessageProtocol.Decode <S>(pack.buff);
#if SOCKET_DEBUG
                Debug.Log(string.Format("[{0}][Request] <<-- [{1}] {2} {3}", rqID, route, JsonUtility.ToJson(msg), JsonUtility.ToJson(msg.info)));
#endif
                return(msg);
            }
            catch (Exception e)
            {
                //Debug.Log(string.Format("[{0}][RequestAsync Exception]{1}", rqID, e.Message));
                throw e;
            }
        }
예제 #3
0
        private void ErrorHandler(Package package)
        {
            Message <byte[]> msg = MessageProtocol.Decode <byte[]>(package.buff);

            Debug.LogError(string.Format("packType:{2} err:{0} msg:{1}", msg.err, msg.errMsg, package.packageType));
        }