Beispiel #1
0
        public override void MessageProcess(Message message, Microsoft.AspNet.SignalR.IHubContext hucontext)
        {
            int orgid = -1;
            int depid = -1;
            var ids   = message.ReceiveId.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);

            if (ids.Length == 2)
            {
                orgid = Convert.ToInt32(ids[0]);
                depid = Convert.ToInt32(ids[1]);
            }
            else
            {
                orgid = Convert.ToInt32(ids[0]);
            }
            List <Users> groupuser = null;

            if (depid == -1)
            {
                groupuser = userbll.LoadAll(c => c.OrganId == orgid && c.UserId != message.SendId).ToList();
            }
            else
            {
                groupuser = userbll.LoadAll(c => c.OrganId == orgid && c.DepartmentId == depid && c.UserId != message.SendId).ToList();
            }
            groupuser.ForEach(c =>
            {
                if (MyHub.Usermananger.Contains(c.UserId.ToString()))
                {
                    return;
                }
                DepositHelper.ListRightPush(RedisKeyManager.OfflineGroupMessageQueue(c.UserId.ToString()), message);
            });

            hucontext.Clients.Group(message.ReceiveId.ToString()).receive(new
            {
                username  = message.SendName,
                avatar    = message.SendHeadPath,
                type      = message.MessageType,
                id        = message.ReceiveId,
                sendid    = message.SendId,
                content   = message.MessageContent,
                mine      = false,
                timestamp = DateTime.Now
            });
        }
Beispiel #2
0
        public override void MessageProcess(Message message, Microsoft.AspNet.SignalR.IHubContext hubcontext)
        {
            var sendUser = user.Get(c => c.UserId == message.SendId);

            if (MyHub.Usermananger.Contains(message.ReceiveId.ToString()))
            {
                var id = Convert.ToInt32(message.ReceiveId);

                hubcontext.Clients.User(message.ReceiveId.ToString()).receive(new{
                    username  = message.SendName,
                    avatar    = message.SendHeadPath,
                    type      = message.MessageType,
                    id        = message.SendId,
                    content   = message.MessageContent,
                    mine      = false,
                    timestamp = DateTime.Now
                });
            }
            else
            {
                DepositHelper.ListRightPush(RedisKeyManager.OfflineMessageQueue(message.ReceiveId.ToString()), message);
            }
        }