コード例 #1
0
ファイル: AppController.cs プロジェクト: Reaper38/SdMessenger
 private void OnSvUserlistUpdate(SvUserlistUpdate msg)
 {
     mainDialog.InvokeAsync(() =>
     {
         mainDialog.UpdateUserList(msg);
     });
 }
コード例 #2
0
        private void OnClientAuthSuccess(ClientId id)
        {
            // XXX: could be optimized: collect all userlist updates and broadcast merged
            // update once all clients are updated
            var msg = new SvUserlistUpdate();

            msg.Connected = new[] { clients[id].Login };
            SendBroadcast(id, msg);
        }
コード例 #3
0
ファイル: MainDialog.cs プロジェクト: Reaper38/SdMessenger
 public void UpdateUserList(SvUserlistUpdate msg)
 {
     foreach (var username in msg.Disconnected)
     {
         lvUsers.Items.RemoveByKey(username);
     }
     foreach (var username in msg.Connected)
     {
         lvUsers.Items.Add(CreateUserlistItem(username));
     }
 }
コード例 #4
0
 private void DisconnectClient(SocketClientBase cl)
 {
     if (cl.DeferredDisconnect)
     {
         return;
     }
     Root.Log(LogLevel.Info, "Server: disconnecting client: " + GetClientName(cl));
     cl.DeferredDisconnect = true;
     delClients.Enqueue(cl);
     cl.Params.Socket.Shutdown(SocketShutdown.Both);
     cl.Params.Socket.Close();
     if (cl.Authenticated)
     {
         var msg = new SvUserlistUpdate();
         msg.Disconnected = new[] { cl.Login };
         SendBroadcast(cl.Id, msg);
     }
 }
コード例 #5
0
        public void SaveLoadSvUserlistUpdate()
        {
            // arrange
            string[] refConnected    = { "godzilla", "octopus" };
            string[] refDisconnected = { "admin", "user", "king" };
            var      msg             = new SvUserlistUpdate
            {
                Connected    = refConnected,
                Disconnected = refDisconnected,
            };

            // act
            MultiprotocolSaveLoad(msg, () =>
            {
                // assert
                Assert.AreEqual(msg.Connected, refConnected);
                Assert.AreEqual(msg.Disconnected, refDisconnected);
            });
        }