public async Task SendMessage(ChannelMessageDto channelDto)
        {
            var result = ChannelHandler.ChannelDictionary.TryGetValue(Context.ConnectionId, out var channelName);

            if (result)
            {
                await Clients.OthersInGroup(channelName)
                .ReceiveMessage(channelDto);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 持久组内消息
        /// </summary>
        /// <param name="imuserid"></param>
        /// <param name="content"></param>
        /// <param name="timestamp"></param>
        private void AddMessageInfo(Guid imuserid, string content, long timestamp)
        {
            var entity = new ChannelMessageDto
            {
                //GroupId = _groupid.ToGuid(),
                //ImUserId = imuserid,
                //MsgType = 1,
                //MsgContent = content,
                //Timestamp = timestamp
            };

            //QueueManager.GroupMessage.Enqueue(new MessageInfo("MessageInfo", entity, null, ThreadQueueHelper.AddMessageInfo));
        }
Beispiel #3
0
 /// <summary>
 /// 添加通道消息
 /// </summary>
 /// <param name="channelId">通道标识</param>
 /// <param name="imUserId">用户标识</param>
 /// <param name="msgType">消息类型(1:文本;2:语音;3:图片;4:表情;5:视频;)</param>
 /// <param name="msgContent">消息内容</param>
 /// <param name="deviceType">设备类型(0:未知;1:安卓;2:IOS;3:PC)</param>
 /// <param name="sourceType">来源类型_备用字段</param>
 /// <param name="clientIp">客户端Ip</param>
 /// <param name="clientDesc">客户端详情</param>
 /// <param name="lasttime">时间戳</param>
 public void Add(string channelId, string imUserId, string msgType, string msgContent, string deviceType, string sourceType, string clientIp, string clientDesc, long lasttime)
 {
     if (FindStorageStatus(channelId.ToGuid()) == 1)
     {
         //TODO:后期队列处理队执行持久
         var dto = new ChannelMessageDto();
         dto.ChannelId  = channelId.ToGuid();
         dto.ImUserId   = imUserId.ToGuid();
         dto.MsgType    = msgType.ToInt32();
         dto.MsgContent = msgContent;
         dto.ClientIp   = clientIp;
         dto.ClientDesc = clientDesc;
         dto.DeviceType = deviceType.ToInt32();
         dto.SourceType = sourceType;
         dto.Timestamp  = lasttime;
         Add(dto);
     }
 }
Beispiel #4
0
        /// <summary>
        /// 添加通道消息
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Guid Add(ChannelMessageDto dto)
        {
            if (dto == null)
            {
                throw new LogicException("保存通道消息参数不能为空");
            }

            var entity = dto.As <ChannelMessagePo>();

            entity.CmessageId = Guid.NewGuid();
            entity.IsValid    = 1;

            var num = _channelMessageRepository.Insert(entity);

            if (num > 0)
            {
                return(entity.CmessageId);
            }
            else
            {
                return(Guid.Empty);
            }
        }