private void OnProcessResponse(SSContext context, string method, byte[] param, RPCError error)
        {
            SkynetMessageSender_OnProcessRequestResponse response = new SkynetMessageSender_OnProcessRequestResponse(param);

            LoggerHelper.Info(m_serviceAddress, string.Format("skynet request_count:{0}", response.request_text));
        }
示例#2
0
 private void RemoteSendDummyCallback(SSContext context, string method, byte[] param, RPCError error)
 {
     // Nothing to do
 }
        private void HandleError(RPCError errorMessage)
        {
            string exceptionMessage = errorMessage != null ? errorMessage.ExceptionMessage : "Unknown error occured.";

            throw new Exception(exceptionMessage);
        }
示例#4
0
 private void DoRequestCallback(SSContext context, string method, byte[] param, RPCError error)
 {
     if (error == RPCError.OK)
     {
         TestServer_OnRequestResponse response = new TestServer_OnRequestResponse(param);
         LoggerHelper.Info(m_serviceAddress, string.Format("<<<<<<<<<<<<<<<<Response OK Time:{0} info:{1}", response.response_time, response.response_text));
         Timeout(null, 10, DoRequest);
     }
     else
     {
         LoggerHelper.Info(m_serviceAddress, string.Format("<<<<<<<<<<<<<<<<Response Error code:{0} error text:{1}", (int)error, Encoding.ASCII.GetString(param)));
     }
 }
示例#5
0
        private void TransferCallback(SSContext context, string method, byte[] param, RPCError error)
        {
            if (error == RPCError.OK)
            {
                int tag = NetProtocol.GetInstance().GetTag("RPC");
                RPCParam rpcParam = new RPCParam();
                rpcParam.method = method;
                rpcParam.param = Convert.ToBase64String(param);

                int remoteSession = context.IntegerDict["RemoteSession"];
                long connectionId = context.LongDict["ConnectionId"];

                List<byte[]> bufferList = m_skynetPacketManager.PackSkynetResponse(remoteSession, tag, rpcParam.encode());

                NetworkPacket rpcMessage = new NetworkPacket();
                rpcMessage.Type = SocketMessageType.DATA;
                rpcMessage.TcpObjectId = m_tcpObjectId;
                rpcMessage.Buffers = bufferList;
                rpcMessage.ConnectionId = connectionId;

                NetworkPacketQueue.GetInstance().Push(rpcMessage);
            }
            else
            {
                int remoteSession = context.IntegerDict["RemoteSession"];
                long connectionId = context.LongDict["ConnectionId"];

                List<byte[]> bufferList = m_skynetPacketManager.PackErrorResponse(remoteSession, Encoding.ASCII.GetString(param));

                NetworkPacket rpcMessage = new NetworkPacket();
                rpcMessage.Type = SocketMessageType.DATA;
                rpcMessage.TcpObjectId = m_tcpObjectId;
                rpcMessage.Buffers = bufferList;
                rpcMessage.ConnectionId = connectionId;

                NetworkPacketQueue.GetInstance().Push(rpcMessage);

                LoggerHelper.Info(m_serviceAddress, 
                    string.Format("Service:ClusterServer Method:TransferCallback errorCode:{0} errorText:{1}", (int)error, Encoding.ASCII.GetString(param)));
            }
        }
        private void OnBattleRequestCallback(SSContext context, string method, byte[] param, RPCError error)
        {
            int source  = context.IntegerDict["source"];
            int session = context.IntegerDict["session"];

            if (error == RPCError.OK)
            {
                BattleTaskConsumer_OnBattleRequestResponse   consumerResponse   = new BattleTaskConsumer_OnBattleRequestResponse(param);
                BattleTaskDispatcher_OnBattleRequestResponse dispatcherResponse = new BattleTaskDispatcher_OnBattleRequestResponse();
                dispatcherResponse.method = "OnBattleRequest";
                dispatcherResponse.param  = consumerResponse.param;

                DoResponse(source, dispatcherResponse.method, dispatcherResponse.encode(), session);
            }
            else
            {
                DoError(source, session, error, Encoding.ASCII.GetString(param));
            }
        }
示例#7
0
 private void SendRequestCallback(SSContext context, string method, byte[] param, RPCError error)
 {
     if (error == RPCError.OK)
     {
         BattleTaskConsumer_OnBattleRequestResponse response = new BattleTaskConsumer_OnBattleRequestResponse(param);
         LoggerHelper.Info(m_serviceAddress, string.Format("TestSender <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Response"));
     }
     else
     {
         LoggerHelper.Info(m_serviceAddress, Encoding.ASCII.GetString(param));
     }
 }
示例#8
0
        private void RemoteResponseCallback(SSContext context, string method, byte[] param, RPCError error)
        {
            long   connectionId  = context.LongDict["ConnectionId"];
            int    remoteSession = context.IntegerDict["RemoteSession"];
            int    sourceSession = context.IntegerDict["SourceSession"];
            int    source        = context.IntegerDict["Source"];
            string sourceMethod  = context.StringDict["Method"];

            if (error == RPCError.OK)
            {
                DoResponse(source, sourceMethod, param, sourceSession);
            }
            else
            {
                DoError(source, sourceSession, error, "RemoteCall Error");
            }

            Dictionary <int, WaitForResponseRequest> waitForResponseDict = null;
            bool isExist = m_conn2sessions.TryGetValue(connectionId, out waitForResponseDict);

            if (isExist)
            {
                waitForResponseDict.Remove(remoteSession);
            }
        }