예제 #1
0
        protected override void OnConnectionlessTempestMessage(TempestMessage tempestMessage, Target target)
        {
            ConnectMessage connect = tempestMessage as ConnectMessage;

            if (connect != null)
            {
                UdpServerConnection connection;
                if (this.authKey != null)
                {
                    connection = new UdpServerConnection(GetConnectionId(), target.ToEndPoint(), this, new RSACrypto(), this.crypto, this.authKey);
                }
                else
                {
                    connection = new UdpServerConnection(GetConnectionId(), target.ToEndPoint(), this);
                }

                if (!this.connections.TryAdd(connection.ConnectionId, connection))
                {
                    throw new InvalidOperationException("Reused connection ID");
                }

                connection.Receive(connect);
            }
            else
            {
                base.OnConnectionlessTempestMessage(tempestMessage, target);
            }
        }
예제 #2
0
        private void RouteMessage(MessageEventArgs args)
        {
            TempestMessage tempestMessage = args.Message as TempestMessage;

            if (tempestMessage != null)
            {
                OnTempestMessage(args);
            }
            else
            {
                OnMessageReceived(args);

                if (args.Message.Header.IsResponse)
                {
                    this.responses.Value.Receive(args.Message);
                }
            }
        }
예제 #3
0
 private void OnConnectionlessTempestMessage(TempestMessage tempestMessage, Target target)
 {
     OnTempestMessage(new MessageEventArgs(this, tempestMessage));
 }
예제 #4
0
 protected override void OnConnectionlessTempestMessage(TempestMessage tempestMessage, Target target)
 {
     this.connection.OnConnectionlessTempestMessage(tempestMessage, target);
 }
예제 #5
0
 protected virtual void OnConnectionlessTempestMessage(TempestMessage tempestMessage, Target target)
 {
 }