/// <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)); } }
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)); }