发送消息
发送与转发
kotlin
suspend fun sendMessage(msg: BimMessage, target: BimMessageTarget)
suspend fun forwardMessage(msg: BimMessage, target: BimMessageTarget)1
2
2
kotlin
val chat = BimImManager.getInstance().chatService
val target = BimMessageTarget.user("u10002")
val message = chat.createTextMessage("hello")
chat.sendMessage(message, target)1
2
3
4
5
2
3
4
5
群组消息使用:
kotlin
chat.sendMessage(
chat.createTextMessage("hello group"),
BimMessageTarget.discussion("discussion-001"),
)1
2
3
4
2
3
4
BimMessageTarget.user(userId) 和 BimMessageTarget.discussion(discussionId) 的 conversationId、名称和头像都是可选提示信息。SDK 会通过公开会话能力解析或补全实际会话。
如果业务已经持有 BimConversation,原有重载仍然可以使用:
kotlin
suspend fun sendMessage(msg: BimMessage, conversation: BimConversation)
suspend fun forwardMessage(msg: BimMessage, conversation: BimConversation)1
2
2
仍需要 Conversation 的操作
以下两个操作当前尚未提供 BimMessageTarget 重载,仍需传入 BimConversation:
kotlin
suspend fun sendMessageReadReceipt(msg: BimMessage, conversation: BimConversation)
suspend fun sendUndoMessage(msg: BimMessage, conversation: BimConversation)1
2
2
也就是说,当前不能直接写成 sendMessageReadReceipt(message, target) 或 sendUndoMessage(message, target)。这两个接口后续如果要降低接入成本,需要另行增加公开 API。
代码示例
kotlin
val chat = BimImManager.getInstance().chatService
val msg = chat.createTextMessage("hello")
chat.sendMessage(msg, BimMessageTarget.user("u10002"))1
2
3
2
3
发送成功或失败通过 suspend 结果和 BimError 表达。兼容 callback 重载仍保留;媒体消息的准备、上传和发送阶段通过 BimMessageSendProgressListener 观察。发送失败记录可通过 getFailedMessageSendRecords 查询,SDK 不会因重连自动重发普通消息。
