예제 #1
0
        private MessagerClient addClient(IWebSocketConnection client)
        {
            string         id = client.ConnectionInfo.Id.ToString();
            MessagerClient c  = new MessagerClient(id, client);

            clients.Add(c);
            return(c);
        }
예제 #2
0
        public void Init()
        {
            //"ws://127.0.0.1:8031/service
            if (!string.IsNullOrEmpty(this.Path))
            {
                clients        = new List <MessagerClient>();
                server         = new WebSocketServer(this.Path);
                FleckLog.Level = LogLevel.Debug;
                server.Start(socket =>
                {
                    socket.OnOpen = () =>
                    {
                        MessagerClient c = addClient(socket);
                        this.UpdateStatus("add", clients.Count.ToString());
                        if (this.OnClientConnect != null)
                        {
                            this.OnClientConnect(c);
                        }
                    };
                    socket.OnClose = () =>
                    {
                        removeClient(socket);
                        this.UpdateStatus("remove", clients.Count.ToString());
                    };
                    socket.OnMessage = (data) =>
                    {
                        if (this.OnMessage != null)
                        {
                            IMessage message = JsonSerializer.Instance.Deserialize <Message>(data);
                            this.OnMessage(message);
                        }
                    };
                });

                this.Status = ItemState.Initiated;
                this.UpdateStatus("initiated");
            }
            else
            {
                this.Status = ItemState.Error;
                this.UpdateStatus("error");
            }
        }
예제 #3
0
 public Form1()
 {
     InitializeComponent();
     context = new InstanceContext(this);
     proxy   = new MessagerClient(context);
 }
예제 #4
0
        private void Messenger_OnClientConnect(MessagerClient client)
        {
            IMessage cmMessage = Message.CreateMessage("ClientManager", _client, "CLIENT");

            _objectPool.Messenger.Send(client.Id, cmMessage);
        }