Example #1
0
        protected override void OnRun(MessageContent content, ServerCommandArgs args)
        {
            if (content.RemoteInfo == null)
            {
                throw new ArgumentNullException("Info");
            }

            if (content.PeerPoint == null)
            {
                throw new ArgumentNullException("PeerPoint");
            }

            if (string.IsNullOrEmpty(content.ReceiverNick))
            {
                throw new ArgumentException("receiverNick");
            }

            if (!ServerModel.Server.ContainsConnection(content.ReceiverNick))
            {
                ServerModel.Api.SendSystemMessage(args.ConnectionId, MessageId.P2PUserNotExist);
                return;
            }

            var connectContent = new ClientConnectToPeerCommand.MessageContent
            {
                PeerPoint  = content.PeerPoint,
                RemoteInfo = content.RemoteInfo,
            };

            ServerModel.Server.SendMessage(content.ReceiverNick, ClientConnectToPeerCommand.CommandId, connectContent);
        }
        public void Run(ServerCommandArgs args)
        {
            var receivedContent = Serializer.Deserialize <MessageContent>(args.Message);

            if (receivedContent.RemoteInfo == null)
            {
                throw new ArgumentNullException("Info");
            }

            if (receivedContent.PeerPoint == null)
            {
                throw new ArgumentNullException("PeerPoint");
            }

            if (string.IsNullOrEmpty(receivedContent.ReceiverNick))
            {
                throw new ArgumentException("receiverNick");
            }

            if (!ServerModel.Server.ContainsConnection(receivedContent.ReceiverNick))
            {
                ServerModel.API.SendSystemMessage(args.ConnectionId, "Данного пользователя не существует.");
                return;
            }

            var connectContent = new ClientConnectToPeerCommand.MessageContent
            {
                PeerPoint  = receivedContent.PeerPoint,
                RemoteInfo = receivedContent.RemoteInfo,
            };

            ServerModel.Server.SendMessage(receivedContent.ReceiverNick, ClientConnectToPeerCommand.Id, connectContent);
        }
        protected override void OnRun(MessageContent content, CommandArgs args)
        {
            if (content.RemoteInfo == null)
            {
                throw new ArgumentNullException("content.RemoteInfo");
            }

            if (string.IsNullOrEmpty(content.ReceiverNick))
            {
                throw new ArgumentException("content.ReceiverNick");
            }

            if (!ServerModel.Server.ContainsConnection(content.ReceiverNick))
            {
                ServerModel.Api.Perform(new ServerSendSystemMessageAction(args.ConnectionId, SystemMessageId.P2PUserNotExist));
                return;
            }

            var connectContent = new ClientConnectToPeerCommand.MessageContent
            {
                Port       = content.PeerPort,
                IPAddress  = content.PeerIPAddress,
                RemoteInfo = content.RemoteInfo
            };

            ServerModel.Server.SendMessage(content.ReceiverNick, ClientConnectToPeerCommand.CommandId, connectContent);
        }