组播消息问题

nndog 8天前 53

type    int 是   消息内容类型
searchableContent   string  否   消息可搜索内容
pushContent string  否   消息推送内容
pushData    string  否   消息推送数据
content string  否   消息内容
base64edData    string  否   消息二进制内容,base64编码
mediaType   int 否   媒体消息类型
remoteMediaUrl  string  否   媒体内容链接
expireDuration  long    否   消息过期时间
mentionedType   int 否   消息提醒类型
mentionedTarget string list 否   消息提醒对象列表;

接口:

  MessagePayload messagePayload = new MessagePayload();
            messagePayload.setType(Integer.parseInt(message.getType()));
            messagePayload.setContent(message.getText());
            IMResult<MultiMessageResult> result = MessageAdmin.multicastMessage(message.getUserId(), message.getUserIds(), 0,messagePayload );

当传的是语音、图片、视频时 参数该怎么传呢?现在这样传不展示数据

最新回复 (3)
  • x86 8天前
    引用 2
    请参考 server sdk里面的Main.java,里面有示例
  • nndog 8天前
    引用 3
    按照案例,接受者在聊天记录中未收到消息;
    对应的代码:

    ```
          MessagePayload messagePayload;
                switch (message.getType()){
                    case "1":
                        TextMessageContent textMessageContent = new TextMessageContent(message.getText());
                        messagePayload = textMessageContent.encode();
                        break;
                    case "2":
                        SoundMessageContent soundMessageContent = new SoundMessageContent();
                        soundMessageContent.setRemoteMediaUrl(message.getText());
                        messagePayload = soundMessageContent.encode();
                        break;
                    case "3":
                        ImageMessageContent imageMessageContent = new ImageMessageContent();
                        if (StringUtils.isNotEmpty(message.getThumbnailBase64edData())){
                            imageMessageContent.setThumbnailBytes(Base64.getDecoder().decode(message.getThumbnailBase64edData()));
                        }
                        //图片地址,发送前需要先上传到对象存储服务。
                        imageMessageContent.setRemoteMediaUrl(message.getText());
                        //消息转成Payload并发送
                        messagePayload = imageMessageContent.encode();
                        break;
                    case "5":
                        //测试发送文件消息
                        FileMessageContent fileMessageContent = new FileMessageContent();
                        if (StringUtils.isNotEmpty(message.getFileName())){
                            //设置文件名
                            fileMessageContent.setName(message.getFileName());
                        }
                       if (message.getFileSize() != null){
                           //设置文件大小
                           fileMessageContent.setSize(message.getFileSize());
                       }
                        //设置文件链接
                        fileMessageContent.setRemoteMediaUrl(message.getText());
                        //消息转成Payload并发送
                        messagePayload = fileMessageContent.encode();
                        break;
                    case "6":
                        VideoMessageContent videoMessageContent = new VideoMessageContent();
                        if (StringUtils.isNotEmpty(message.getThumbnailBase64edData())){
                            //base64edData为视频的首帧的缩略图。缩略图的生成规则是,把图片压缩到120X120大小的方框内,45%的质量压缩为JPG格式,再把二进制做base64编码得到字符串。
                            videoMessageContent.setThumbnailBytes(Base64.getDecoder().decode(message.getThumbnailBase64edData()));
                        }
                        if (message.getDuration() != null){
                            //视频时长,单位秒
                            videoMessageContent.setDuration(message.getDuration());
                        }
                        //视频地址,发送前需要先上传到对象存储服务。
                        videoMessageContent.setRemoteMediaUrl(message.getText());
                        //消息转成Payload并发送
                        messagePayload = videoMessageContent.encode();
                        break;
                    default:
                        throw new RuntimeException("不支持的消息类型");
                }
                IMResult<MultiMessageResult> result = MessageAdmin.multicastMessage(message.getUserId(), message.getUserIds(), 0,messagePayload );
    ```
  • x86 8天前
    引用 4
    message.getUserIds() 对吗?
返回