コード例 #1
0
        protected void Client_MessageReceived(object sender, MessageEventArgs e)
        {
            try
            {
                var client = sender as IScsServerClient;
                var cmd    = e.Message as Cmd;
                try
                {
                    ServerClientDictItem sci = _sclients[client.ClientId];
                    sci.RemainLifeNumber = DefaultLifeNumber;
                    if (string.IsNullOrWhiteSpace(sci.SenderName))
                    {
                        sci.SenderName = cmd.sender_name;
                    }
                }
                catch { }

                EzLogger.GlobalLogger.info(string.Format("tcp server receive message from {0}: {1}",
                                                         client.RemoteEndPoint, cmd.ToString()));

                if (client != null)
                {
                    //心跳自动回复,不需要进一步处理
                    if (cmd is HeartBeatCmd)
                    {
                        client.SendMessage(cmd);
                    }

                    if (MessageReceived != null)
                    {
                        MessageReceived(client, cmd);
                    }
                }
            }
            catch (System.Exception ex)
            {
                EzLogger.GlobalLogger.warning(string.Format("{0}{2}{1}{2}",
                                                            ex.Message, ex.StackTrace, Environment.NewLine));
            }
        }
コード例 #2
0
        protected void server_ClientConnected(object sender, ServerClientEventArgs e)
        {
            e.Client.MessageReceived += Client_MessageReceived;
            EzLogger.GlobalLogger.info(string.Format("{0} client(s). connected: {1}",
                                                     _server.Clients.Count, e.Client.RemoteEndPoint));

            try
            {
                ServerClientDictItem sc = new ServerClientDictItem(e.Client, this.DefaultLifeNumber);
                lock (_sclients) { _sclients.Add(e.Client.ClientId, sc); }
            }
            catch (System.Exception ex)
            {
                EzLogger.GlobalLogger.warning(string.Format("{0}{2}{1}{2}",
                                                            ex.Message, ex.StackTrace, Environment.NewLine));
            }

            if (ConnectionArrived != null)
            {
                ConnectionArrived(e.Client);
            }
        }
コード例 #3
0
        protected void server_ClientConnected(object sender, ServerClientEventArgs e)
        {
            e.Client.MessageReceived += Client_MessageReceived;
            EzLogger.GlobalLogger.info(string.Format("{0} client(s). connected: {1}",
                _server.Clients.Count, e.Client.RemoteEndPoint));

            try
            {
                ServerClientDictItem sc = new ServerClientDictItem(e.Client, this.DefaultLifeNumber);
                lock (_sclients) { _sclients.Add(e.Client.ClientId, sc); }
            }
            catch (System.Exception ex)
            {
                EzLogger.GlobalLogger.warning(string.Format("{0}{2}{1}{2}",
                    ex.Message, ex.StackTrace, Environment.NewLine));
            }

            if (ConnectionArrived != null)
                ConnectionArrived(e.Client);
        }