/// <summary> /// 单条消息推送服务 /// </summary> /// <param name="message">消息数据</param> private void PushMessage(MessageNotification msg, List <IMUser> onlineUsers, IHubContext <Hub> hub) { IMUser user = null; List <RecieverEntity> recievers = msg.Recievers; foreach (var reciever in recievers) { user = onlineUsers.SingleOrDefault(a => a.UserName == reciever.Reciever); if (user != null) { //hub.Clients.Client(user.ConnectionID).onPushingMessage(new //{ // MsgType = 2, // Title = msg.Title, // Content = msg.Content, // Status = msg.Status, // MsgGUID = msg.MsgGUID, // SenderID = msg.SenderID, // Sender = msg.Sender, // SendTime = msg.SendTime, // AppName = msg.AppName, // AppInstanceID = msg.AppInstanceID, // FormRef = msg.FormRef, // FormCode = msg.FormCode, // FormText = msg.FormText //}); } } }
public void Add(string acc, string connid, Platform platform) { var user = new IMUser() { Account = acc, ConnectionId = connid, Platform = platform, }; CacheUser(user); }
/// <summary> /// 当修改用户的IM信息时,给其他联系人发送透传消息通知更新当前用户的信息 /// </summary> /// <returns></returns> public static void SendIMUserUpdateCmdMessage(IMUser imUser) { UpdateIMUserCmdMagBody cmdMagBody = new UpdateIMUserCmdMagBody(imUser); var otherUsers = Logic.BLL.UserInfoService.FindList(a => !a.UID.Equals(imUser.IMUserName, StringComparison.OrdinalIgnoreCase) && a.Status == 1 && a.HuanXinUUID.Length > 0) .Select(a => a.UID).ToArray(); if (otherUsers.Any()) { MsgObject mgsObj = new MsgObject(MsgTargetType.users, otherUsers, cmdMagBody, null); emChat.SendMessages(mgsObj); } }
public void OnLogin(YIMEngine.ErrorCode errorcode, string iYouMeID) { if (errorcode == YIMEngine.ErrorCode.Success) { _lastLoginUser = new IMUser(iYouMeID); } if (IMClient.Instance.ConnectListener != null) { IMConnectEvent e = new IMConnectEvent(Conv.ErrorCodeConvert(errorcode), errorcode == 0 ? ConnectEventType.CONNECTED:ConnectEventType.CONNECT_FAIL, iYouMeID); IMClient.Instance.ConnectListener(e); } }
/// <summary> /// 登录用户的消息拉取服务 /// </summary> /// <param name="user"></param> public void PullMessageList(IMUser user) { var msgService = new MessageService(); var msgQuery = new MessageQuery { PageIndex = 0, PageSize = 100, Reciever = user.UserName, RecieverID = user.UserID, Status = MsgStatusEnum.Unread }; List <MessageEntity> unreadMsgList = null; //var hub = GlobalHost.ConnectionManager.GetHubContext<ClientPushHub>(); //hub.Clients.Client(user.ConnectionID).onPullingMessage(unreadMsgList); }
/// <summary> /// 把登录用户的名称信息添加到在线用户列表 /// </summary> /// <param name="user"></param> public static void RegisterNewOnlineUser(IMUser user) { //先删除该用户名称下的所有ConnectionIds IMUser removedUser; Users.TryRemove(user.UserName, out removedUser); //添加新连接用户 var newOnlineUser = new IMUser(); newOnlineUser.UserID = user.UserID; newOnlineUser.UserName = user.UserName; newOnlineUser.ConnectionID = user.ConnectionID; Users.GetOrAdd(newOnlineUser.UserName, newOnlineUser); }
public ResponseResult RegisterUserConnection(IMUser user) { var result = ResponseResult.Default(); try { //注册为新在线用户 ChatHub2.RegisterNewOnlineUser(user); //获取该用户的消息列表 var msgModel = new MessageModel(); msgModel.PullMessageList(user); result = ResponseResult.Success(); } catch (System.Exception ex) { result = ResponseResult.Error( string.Format("注册新用户失败:{0}", ex.Message) ); } return(result); }
public UpdateIMUserCmdMagBody(IMUser IMUser) { this.IMUser = IMUser; }
private void CacheUser(IMUser user) { _cacheHelper.Set(GetUserKey(user), user); }
private string GetUserKey(IMUser user) { return(IMUserList + ((int)user.Platform) + user.Account + user.ConnectionId); }