示例#1
0
 private void OnClientConnected(object sender, ConnectedArgs e)
 {
     this.Invoke(new Action(() =>
     {
         this.textBox1.AppendText("New Client Connected.\n");
         e.ConnectedClient.DataReceived += OnClientSentDataToServer;
     }));
 }
示例#2
0
        /// <summary>
        /// Called when the client connects to the server (after <see cref="OnConnectedAsync()"/>).
        ///
        /// Used to pass any data needed for connection.
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public async Task Connected(ConnectedArgs args)
        {
            var chatUser = await ChatContext.Users
                           .Include(u => u.Memberships)
                           .ThenInclude(m => m.Group)
                           .ThenInclude(g => g.Memberships)
                           .ThenInclude(m => m.ChatUser)
                           .FirstOrDefaultAsync(u => u.Id == args.UserID);

            if (!ValidateUser(chatUser))
            {
                return;
            }

            foreach (var m in chatUser.Memberships)
            {
                if (m is PersonalGroupMembership p)
                {
                    var otherUser = p.PersonalGroup.GetOtherUser(chatUser);
                    await Clients.Caller
                    .SendAsync(
                        "AddGroup",
                        new AddGroupArgs(
                            p.GroupID,
                            p.MembershipID,
                            p.NumNew,
                            otherUser.UserName,
                            FileOperationProvider.FileLoadURL + "/" + otherUser.ProfileImage
                            )
                        );
                }
                else if (m is MultiuserGroupMembership g)
                {
                    await Clients.Caller
                    .SendAsync(
                        "AddGroup",
                        new AddGroupArgs(
                            g.GroupID,
                            g.MembershipID,
                            g.NumNew,
                            g.MultiuserGroup.Name,
                            FileOperationProvider.FileLoadURL + "/" + g.MultiuserGroup.GroupImage)
                        );
                }
                else
                {
                    throw new InvalidOperationException();
                }
            }
        }
示例#3
0
 void chat_ClientConnected(object sender, ConnectedArgs e)
 {
     if (IsServer)
     {
         this.Invoke(new MethodInvoker(() =>
         {
             if (!Config.isIPConfirm)
             {
                 Config.IPAddressConfirm = e.Address.ToString();
                 Config.isIPConfirm      = true;
                 ControlEnabled(true);
                 netCam.Start();
                 netAudio.Start();
                 movement.Start();
                 pictureBox1.Show();
                 pictureBox2.Show();
                 //if (!netAudio.IsStopped) netAudio.OpenMic(0);
                 //if (!netAudio.IsStopped) netAudio.OpenSound();
                 //chat.Send("-com:ready");
                 lblMsg.Text = "Client has connected.";
             }
         }));
     }
 }
示例#4
0
 private void OnClientDisconnected(object sender, ConnectedArgs e)
 {
     this.Invoke(new Action(() => this.textBox1.AppendText("A Client disconnected.\n")));
 }
示例#5
0
 protected void OnConnected(object o, ConnectedArgs args)
 {
     EnableMainMenu(true);
     LogInfo("Connected to " + args.Address + ":" + args.Port.ToString());
 }