private IClientMessageHandler handle(string words, Socket client)
        {
            Message <JObject> msg = JsonConvert.DeserializeObject <Message <JObject> >(words);

            IClientMessageHandler handler = null;

            switch (msg.MessageType)
            {
            case MessageType.C_LogIn:     // 登录
                handler = _loginHandler;
                break;

            case MessageType.Heart:       // 心跳
                handler = _heartHandler;
                break;

            case MessageType.C_SwapMsg:     // 交换数据
                handler = _swapMsgHandler;
                break;

            default:
                throw new Exception($"未知的通讯指令 {msg.MessageType}");
            }

            handler.HandlerMsg(this._fastTunnelServer, client, msg);
            return(handler);
        }
Exemple #2
0
 public DefaultTransportFactory(ISocketClient <AmpMessage> socket, IClientMessageHandler <AmpMessage> handler)
 {
     this._socket                 = socket;
     this._handler                = handler;
     this._socket.OnIdleState    += _socket_OnIdleState;
     this._socket.OnReceived     += _socket_OnReceived;
     this._socket.OnConnected    += _socket_OnConnected;
     this._socket.OnDisconnected += _socket_OnDisconnected;
     this._socket.OnError        += _socket_OnError;
 }
        public NettyClientBootstrap(IClientMessageHandler <TMessage> handler, IMessageCodecs <TMessage> msgCodecs, IOptions <RpcClientOption> option, ILoggerFactory factory)
        {
            this._clientOption = option;

            _bootstrap = InitBootstrap();
            _handler   = handler;
            _msgCodecs = msgCodecs;

            this.Logger   = factory.CreateLogger(this.GetType());
            this._factory = factory;
        }
Exemple #4
0
 public DefaultRpcClient(
     //IOptions<RpcClientOptions> clientOptions,
     IServiceRouter serviceRouter,
     ITransportFactory <AmpMessage> transportFactory,
     IClientMessageHandler <AmpMessage> handler,
     ILogger <DefaultRpcClient> logger
     )
 {
     //_clientOptions = clientOptions.Value ?? new RpcClientOptions();
     this._serviceRouter    = serviceRouter;
     this._transportFactory = transportFactory;
     this._handler          = handler;
     this._logger           = logger;
 }
Exemple #5
0
        //private static object lockObj = new object();

        public DefaultCallInvoker(
            IClientMessageHandler <AmpMessage> handler,
            IRpcClient <AmpMessage> rpcClient,
            ISerializer serializer,
            ILogger <DefaultCallInvoker> logger
            )
        {
            this._handler    = handler;
            this._rpcClient  = rpcClient;
            this._serializer = serializer;

            this._logger              = logger;
            this._handler.OnReceived += _handler_OnReceived;
        }
        public DefaultRpcClient(
            ITransportFactory <TMessage> factory,
            IRouter <TMessage> router,
            IClientMessageHandler <TMessage> handler,
            IServiceActorLocator <TMessage> actorLocator,
            ILogger <DefaultRpcClient <TMessage> > logger
            )
        {
            //注册消息拦截器 收到消息时的处理函数
            this._router  = router;
            this._handler = handler;
            this._factory = factory;
            logger.LogDebug("注册客户端拦截器消息");
            this._handler.Recieved -= Message_Recieved;
            this._handler.Recieved += Message_Recieved;

            this._actorLocator = actorLocator;
            this.Logger        = logger;
        }
Exemple #7
0
        private bool handle(AsyncUserToken token, string words)
        {
            Message <JObject> msg;

            if (token == null || string.IsNullOrEmpty(words))
            {
                _logger.LogError($"无效的token -> 【异常的指令】{words}");
                return(false);
            }

            try
            {
                msg = JsonConvert.DeserializeObject <Message <JObject> >(words);

                IClientMessageHandler handler = null;
                switch (msg.MessageType)
                {
                case MessageType.C_LogIn:     // 登录
                    handler = _loginHandler;
                    break;

                case MessageType.Heart:       // 心跳
                    handler = _heartHandler;
                    break;

                case MessageType.C_SwapMsg:     // 交换数据
                    handler = _swapMsgHandler;
                    break;

                default:
                    throw new Exception($"未知的通讯指令 {msg.MessageType}");
                }

                handler.HandlerMsg(this._fastTunnelServer, token.Socket, msg);

                return(handler.NeedRecive);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"处理客户端消息失败 {words}");
                return(false);
            }
        }
Exemple #8
0
 public ClientSender(IClientMessageHandler clientMessageHandler)
 {
     _clientMessageHandler = clientMessageHandler;
 }
Exemple #9
0
 public LocalMockContext(IClientMessageHandler <TMessage> handler)
 {
     this._handler = handler;
 }
Exemple #10
0
 public InprocContext(IClientMessageHandler <AmpMessage> handler)
 {
     this._handler = handler;
     Id            = ObjectId.GenerateNewId().ToString();
 }
 public MockRpcClient2(ISerializer serializer, IClientMessageHandler <AmpMessage> handler)
 {
     this._serializer = serializer;
     this._handler    = handler;
 }
 public MockRpcClient(IClientMessageHandler <AmpMessage> handler)
 {
     this._handler = handler;
 }