예제 #1
0
 private void Message_Recieved(object sender, MessageRecievedEventArgs <TMessage> args)
 {
     //只处理服务端返回的请求,而不处理客户端发送的请求
     if (args.Message.InvokeMessageType != InvokeMessageType.Request)
     {
         Recieved?.Invoke(sender, args);
     }
 }
예제 #2
0
 public Task ReceiveAsync(RpcResponse response)
 {
     if (Recieved != null)
     {
         return(Task.Factory.StartNew(() => { Recieved.Invoke(this, new RecievedMessageEventArgs(response)); }));
     }
     else
     {
         return(Task.CompletedTask);
     }
 }
예제 #3
0
        private void Message_Recieved(object sender, MessageRecievedEventArgs <TMessage> args)
        {
            // 只处理服务端返回的请求,而不处理客户端发送的请求
            // 收到了消息然后冒泡到 上层
            if (args.Message.InvokeMessageType != InvokeMessageType.Request)
            {
                Logger.LogDebug("收到消息返回");

                Recieved?.Invoke(sender, args);
            }
        }
예제 #4
0
 public Task ReceiveAsync(IRpcContext <TMessage> context, TMessage message)
 {
     if (Recieved != null)
     {
         return(Task.Factory.StartNew(() =>
         {
             Recieved.Invoke(this, new MessageRecievedEventArgs <TMessage>(context, message));
         }
                                      ));
     }
     else
     {
         return(Utils.TaskUtils.CompletedTask);
     }
 }
예제 #5
0
        private void ListenLoop()
        {
            Connection = Ear.Accept();

            byte[] messageSizeBytes = new byte[sizeof(int)];
            Connection.Receive(messageSizeBytes);
            int messageSize = BitConverter.ToInt32(messageSizeBytes, 0);

            byte[] messageBytes = new byte[messageSize];
            Connection.Receive(messageBytes);

            RecieveEventArgs args = new RecieveEventArgs(Connection.RemoteEndPoint, messageBytes);

            Recieved?.Invoke(Connection, args);

            Connection.Shutdown(SocketShutdown.Both);
            Connection.Close();

            ListenLoop();
        }
예제 #6
0
 void callback(IAsyncResult ar)
 {
     try
     {
         sck.EndReceive(ar);
         byte[] buf = new byte[8192];
         int    rec = sck.Receive(buf, buf.Length, 0);
         if (rec < buf.Length)
         {
             Array.Resize(ref buf, rec);
         }
         Recieved?.Invoke(this, buf);
         sck.BeginReceive
             (new byte[] { 0 }, 0, 0, 0, callback, null);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         Close();
         Disconnected?.Invoke(this);
     }
 }
예제 #7
0
 private void Message_Recieved(object sender, MessageRecievedEventArgs <TMessage> args)
 {
     Recieved?.Invoke(sender, args);
 }
예제 #8
0
 private void RaiseReceivedEvent(IRpcContext <TMessage> context, TMessage message)
 {
     Recieved?.Invoke(this, new MessageRecievedEventArgs <TMessage>(context, message));
 }
예제 #9
0
 protected virtual void OnRecieved(string command)
 {
     Recieved?.Invoke(this, command);
 }
예제 #10
0
 private void NotifyRecieved(TData data)
 {
     Recieved?.Invoke(this, data);
 }
예제 #11
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="message"></param>
 /// <param name="parameter"></param>
 public void Send(object message = null, object parameter = null)
 {
     Recieved?.Invoke(this, new MessengerEventArgs(message, parameter));
 }
예제 #12
0
 /// <summary>
 /// <para>Note : delegate method handle raise event</para>
 /// </summary>
 protected virtual void OnReveived(CoinEvent e)
 {
     Recieved?.Invoke(this, e);
 }
예제 #13
0
 public void Receive(IRpcContext <TMessage> context, TMessage message)
 {
     Recieved?.Invoke(this, new MessageRecievedEventArgs <TMessage> (context, message));
 }
예제 #14
0
 private void Message_Recieved(object sender, RecievedMessageEventArgs e)
 {
     Recieved?.Invoke(sender, e);
 }