public async Task SendMessage(ChannelMessageDto channelDto) { var result = ChannelHandler.ChannelDictionary.TryGetValue(Context.ConnectionId, out var channelName); if (result) { await Clients.OthersInGroup(channelName) .ReceiveMessage(channelDto); } }
/// <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)); }
/// <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); } }
/// <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); } }