Пример #1
0
        /// <summary>
        /// 发送消息,供客户端调用
        /// </summary>
        /// <param name="user">用户名,如果为0,则是发送给所有人</param>
        /// <param name="msg">消息</param>
        public void SendMsg(string user, string msg)
        {
            //通过ConnectionID找到当前聊天室的信息
            LiveChatRoomMember member = new LiveChatRoomMemberBLL().Find(it => it.ConnectionID == Context.ConnectionId);

            if (member != null && member.ID > 0)
            {
                //向当前聊天室发送消息
                Clients.Groups(new List <string> {
                    member.RoomID.ToString()
                }).publishMsg(FormatMsg(member.User.UserName, msg, 1, member.User.HeadPic));
            }
        }
Пример #2
0
        public override Task OnDisconnected(bool stopCalled)
        {
            LiveChatRoomMemberBLL biz = new LiveChatRoomMemberBLL();
            //根据ConnectionID找到当前的聊天室信息
            LiveChatRoomMember member = biz.Find(it => it.ConnectionID == Context.ConnectionId);

            if (member != null && member.ID > 0)
            {
                //从该房间清除该人员
                if (biz.Delete(member.ID))
                {
                    //发送退出消息
                    Clients.Groups(new List <string> {
                        member.RoomID.ToString()
                    }).publishMsg(FormatMsg("系统消息", member.User.UserName + "  退出聊天", 0));
                    //从组中移除该ConnectionID
                    Groups.Remove(Context.ConnectionId, member.RoomID.ToString());
                }
            }

            return(base.OnDisconnected(stopCalled));
        }