예제 #1
0
        /// <summary>
        /// New client event handler. This is triggered by the network layer.
        /// </summary>
        public void NewClientHandler(object sender, NewClientEventArgs e)
        {
            GenericSession session = new GameSession(e.Client, this.eventAggregator);

            e.Client.OnNewData    += session.NewDataHandler;
            e.Client.OnLostClient += session.LostClientHandler;
        }
예제 #2
0
        /// <summary>
        /// This function is being called whenever a new client is connected
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnNewClient(object sender, NewClientEventArgs e)
        {
            bool   result;
            string answer = _mController.ExecuteCommand((int)CommandEnum.GetConfigCommand, null, out result);

            if (answer != "")
            {
                serverChannel.SendSpecificlly(e.Client, answer);
            }
            lock (thisLock)
            {
                // get the list of logs
                List <MessageRecievedEventArgs> logMsgsReversed =
                    new List <MessageRecievedEventArgs>(LogService.Instance.LogMsgs);
                // reverse the list
                logMsgsReversed.Reverse();
                // go over the list of logs ans send them to the specific client
                foreach (MessageRecievedEventArgs msg in logMsgsReversed)
                {
                    string[]       info = { msg.Status.ToString(), msg.Message };
                    CommandMessage msgC = new CommandMessage((int)CommandEnum.LogCommand, info);
                    serverChannel.SendSpecificlly(e.Client, msgC.ToJson());
                    System.Threading.Thread.Sleep(100);
                }
            }
            _mLogging.Log("New client is connected", MessageTypeEnum.INFO);
            _mLogging.Log("Send config: " + answer, MessageTypeEnum.INFO);
        }
예제 #3
0
파일: Program.cs 프로젝트: kl999/LPQueries
        private static void clientConnected(object sender, NewClientEventArgs e)
        {
            var clt = e.client;

            var msg = clt.ReceveMessage();

            System.Console.WriteLine($"{DateTime.Now:HH:mm}: {Encoding.UTF8.GetString(msg.Bytes.ToArray())}");
        }
예제 #4
0
        private void OnNewClient(Object sender, NewClientEventArgs e)
        {
            newClient = true;

            client = e.Client;

            client.OnNewData    += OnNewData;
            client.OnLostClient += OnLostClient;
        }
예제 #5
0
        private void _NewClient(object Sender, NewClientEventArgs e)
        {
            var client = e.Client;
            // Generate a random control code, and find its token, then add the token to our dictionary
            string color = Color.RandomFG();

            clientColors.Add(client, Color.Tokens.mapANSI.FirstOrDefault(x => x.Value == color).Key);

            // And send the greeting
            client.Send(string.Format("Simple Chat running on {0}:{1}", Program.server.Host, Program.server.Port));
            Commands.SendPrompt(client);
            clients.SendToAllExcept(string.Format("&X{0}{1}&W has joined.&X", clientColors[client], client.Id), client);
        }
예제 #6
0
        void HandleNewClient(object sender, NewClientEventArgs e)
        {
            try {
                Pipe pipe = new Pipe(e.Client.Client);

                while (this.HoldTheLine)
                {
                    pipe.Handshake();
                    WithBranch.TryProcess(new ReachInteraction(pipe));
                    pipe.SendCommand(Command.Close);
                }

                e.Client.Close();
            } catch (SocketException ex) {
                Secretary.Report(5, "Connection failed at", this.Description);
            } catch (Exception ex) {
                Secretary.Report(5, "Misc. exception occured at", this.Description, ":", ex.Message);
                e.Client.Close();
            }
        }
예제 #7
0
        private void Server_NewClient(object sender, NewClientEventArgs e)
        {
            MainWindowViewModel vm = null;
            Window window          = null;

            Dispatcher.Invoke(() =>
            {
                vm     = MainWindow.DataContext as MainWindowViewModel;
                window = MainWindow;
            });

            if (vm != null)
            {
                window.Dispatcher.Invoke(() =>
                {
                    if (!vm.Devices.Contains(e.Device))
                    {
                        vm.Devices.Add(e.Device);
                    }
                });
            }
        }
예제 #8
0
 private void RefereeServer_OnNewClient(object sender, NewClientEventArgs e)
 {
     _baseStationStreams.Add(new MessageStream(e.NewClient));
 }