Example #1
0
        /// <summary>
        /// Event rises on server accept client.
        /// </summary>
        /// <param name="sender">Object that send the event.</param>
        /// <param name="networkClient">Client connected.</param>
        private void AcceptNetworkClient(object sender, ClientAcceptedEventArgs e)
        {
            IMessageParser        messageParser     = this.Binding.CreateParser();
            IMessageSerializer    messageSerializer = this.Binding.MessageSerializer;
            Channel <TController> channel           = new Channel <TController>(e.NetworkClient, messageParser, messageSerializer);

            this.ChannelList.Add(channel);
        }
Example #2
0
        private void OnClientAccepted(object sender, ClientAcceptedEventArgs e)
        {
            var client = e.Client;

            Clients.Add(client);
            ClientAccepted.Invoke(this, e);
            client.SendMessage($"{Name}<!Nickname>");
        }
Example #3
0
 private void ClientAccepted(object sender, ClientAcceptedEventArgs args)
 {
     Task.Run(() =>
     {
         var subscription = (SubscribeMessage)args.Channel.Receive(_subscribeMessageSerializer);
         _subscriptionManager.AddSubscription(args.Channel, subscription.Topics);
         ClientSubscribed?.Invoke(this, args);
     });
 }
Example #4
0
        private void OnClientAccepted(ClientAcceptedEventArgs args)
        {
            ClientAcceptedHandler handler = ClientAccepted;

            if (handler != null)
            {
                handler(this, args);
            }
        }
Example #5
0
        /// <summary>
        /// Sets the arguments of the connection, when a connection is accepted.
        /// </summary>
        /// <param name="sender">The sender of the event.</param>
        /// <param name="args">The event arguments.</param>
        private void ConnectionManager_ConnectionAccepted(object sender, ClientAcceptedEventArgs args)
        {
            ConnectionArgs connectionData = new ConnectionArgs();

            // TODO: Implement user name.
            connectionData.UserName    = "******";
            connectionData.ClientState = ClientState.Inactive;
            IConnection connection = args.Connection;

            connection.ConnectionData = connectionData;
        }
Example #6
0
 private void OnAccept(ClientAcceptedEventArgs e)
 {
     foreach (EventListener el in Plugins)
     {
         ServerListener sl = (ServerListener)el.Listener;
         if (el.Event == Event.ServerAccept)
         {
             sl.OnAccept(e);
         }
     }
 }
Example #7
0
        private void Server_ClientAccepted(object sender, ClientAcceptedEventArgs args)
        {
            string endpoint = args.Adapter.RemoteEndPoint.ToString();

            Common.Log.Logger.Default.Trace("ClientAccepted:" + endpoint);
            SocketAdapter adapter = args.Adapter;

            lock (_sockets)
            {
                _sockets.RemoveAll(_ => _.Adapter == null);
                var socket = new SocketListener(adapter, $"监听端口:{_port}.");
                _sockets.Add(socket);
            }
        }
Example #8
0
        private void PublisherChannelAccepted(object sender, ClientAcceptedEventArgs args)
        {
            ClientConnected?.Invoke(this, args);

            var channel = args.Channel;

            Task.Factory.StartNew(() =>
            {
                while (args.Channel.IsOpened)
                {
                    try
                    {
                        var topicMessage = channel.Receive(_stringMessageSerializer.Value);
                        if (topicMessage == null)
                        {
                            return;
                        }

                        var contentMessage = channel.Receive();
                        if (contentMessage == null)
                        {
                            return;
                        }

                        channel.Send(new StringMessage(PublicationConfirmString), _stringMessageSerializer.Value);

                        _publisher.Broadcast(topicMessage.ToString(), contentMessage);
                    }
                    catch (Exception ex) when(ex is DataTransferException || ex is IOException)
                    {
                        CommunicationFailed?.Invoke(this, new ExceptionEventArgs(ex));

                        if (channel.IsOpened)
                        {
                            channel.Close();
                        }

                        return;
                    }
                }
            }, TaskCreationOptions.LongRunning);
        }
Example #9
0
 private void _listener_Accepted(object sender, ClientAcceptedEventArgs e)
 {
     LogInfo("_listener_Accepted " + e.Socket);
 }
Example #10
0
 public virtual void OnAccept(ClientAcceptedEventArgs e)
 {
 }