admin管理员组文章数量:1636251
发送消息
消息结构¶
消息数据结构:
字段名
类型
说明
type
Number
会话类型
targetId
String
senderUserId
String
发送者 id
content
Object
消息内容
messageType
String
消息标识
messageUId
String
服务端存储的消息 id
messageDirection
Number
消息方向. 发送: 1, 接收: 2
isOffLineMessage
Boolean
是否为离线消息
sentTime
Number
消息在融云服务端的发送时间
receivedTime
Number
消息接收时间. isOffLineMessage 为 true 时, receivedTime 无效
isPersited
Boolean
消息是否存储在服务端
isCounted
Boolean
消息是否计数
发送参数¶
参数
类型
必填
默认值
说明
最低版本
messageType
String
是
消息类型. 与移动端 objectName 一致
3.0.0
content
String
是
消息内容
3.0.0
isPersited
Boolean
否
true
是否存储在服务端
3.0.0
isCounted
Boolean
否
true
是否计数. 计数消息接收端接收后未读数加 1
3.0.0
isMentiond
Boolean
否
false
是否为 @ 消息
3.0.0
mentiondType
Number
否
1
@ 类型. 1: @ 所有人 2: @ 指定用户
3.0.0
mentiondUserIdList
Array
否
@ 用户 id 列表
3.0.0
pushContent
String
否
Push 显示内容
3.0.0
pushData
String
否
Push 通知时附加信息
3.0.0
isVoipPush
String
否
false
为 ture 时, 对端不在线的 iOS 会收到 Voip Push. Android 无影响
3.0.0
directionalUserIdList
Array
否
接收定向消息的用户 id 列表. 仅群组有效
3.0.0
isStatusMessage
Boolean
否
false
是否发送状态消息
3.0.0
消息接收¶
文本消息¶
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
conversation.send({
messageType: RongIMLib.MESSAGE_TYPE.TEXT, // 'RC:TxtMsg'
content: {
content: 'Hello RongCloud' // 文本内容
}
}).then(function(message){
console.log('发送文字消息成功', message);
});
图片消息¶
注意事项
略缩图(content 字段)必须是 base64 字符串, 类型必须为 jpg
base64 略缩图必须不带前缀
base64 字符串大小不可超过 100 k
可通过 FileReader 或者 canvas 对图片进行压缩, 生成压缩后的 base64 字符串
图片上传请参考:上传
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
conversation.send({
messageType: RongIMLib.MESSAGE_TYPE.IMAGE, // 'RC:ImgMsg'
content: {
content: '/9j/4AAQSBAAD/2wBDDBAYEBAQEB....', // // 压缩后的 base64 略缩图, 用来快速展示图片
imageUri: 'https://www.rongcloud/images/newVersion/log_wx.png' // 上传到服务器的 url. 用来展示高清图片
}
}).then(function(message){
console.log('发送图片消息成功', message);
});
文件消息¶
文件上传请参考:上传插件
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
var name = 'RongIMLib.js'; // 文件名
var size = 1024; // 文件大小
var type = 'js'; // 文件类型
var fileUrl = 'https://cdn.ronghub/RongIMLib.js'; // 文件地址
conversation.send({
messageType: RongIMLib.MESSAGE_TYPE.FILE, // 'RC:FileMsg'
content: {
name: name,
size: size,
type: type,
fileUrl: fileUrl
}
}).then(function(message){
console.log('发送文件消息成功', message);
});
语音消息¶
注: SDK 目前不提供录音功能, 开发者需生成语音 url 后, 传入发送消息接口, 发送语音消息
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
conversation.send({
messageType: RongIMLib.MESSAGE_TYPE.HQ_VOICE, // 'RC:HQVCMsg'
content: {
remoteUrl: 'https://rongcloud-audio.ronghub/audio_amr__RC-2020-03-17_42_1584413950049.aac?e=1599965952&token=CddrKW5AbOMQaDRwc3ReDNvo3-sL_SO1fSUBKV3H:CDngyWj7ZApNmAfoecng7L_3SaU=', // 音频 url, 建议格式: aac
duration: 6, // 音频时长
type: 'aac'
}
}).then(function(message){
console.log('发送语音消息成功', message);
});
位置消息¶
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
var latitude = 40.0317727;
var longitude = 116.4175057;
var poi = '北苑路北辰·泰岳';
var content = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABsSFBcUERsXFhceHBsgKE'; // 位置图片 base64
conversation.send({
messageType: RongIMLib.MESSAGE_TYPE.LOCATION, // 'RC:LBSMsg'
content: {
latitude: latitude,
longitude: longitude,
poi: poi,
content: content
}
}).then(function(message){
console.log('发送位置消息成功', message);
});
图文消息¶
图文消息也称为富文本消息
图片上传请参考:上传
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
var title = '融云'; // 图文标题
var content = '为用户提供 IM 即时通讯和音视频通讯云服务'; // 图文内容
var imageUri = ''; // 上传到自己服务器的 url
var url = 'https://www.rongcloud'; // 富文本消息点击后打开的 URL
conversation.send({
messageType: RongIMLib.MESSAGE_TYPE.RICH_CONTENT, // 'RC:ImgTextMsg'
content: {
title: title,
content: content,
imageUri: imageUri,
url: url
}
}).then(function(message){
console.log('发送图文消息成功', message);
});
其他消息¶
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
conversation.send({
messageType: 's:person', // 填写开发者定义的 messageType
content: { // 填写开发者定义的消息内容
name: 'RongCloud',
age: 12
}
}).then(function(message){
console.log('发送 s:person 消息成功', message);
});
正在输入消息¶
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
conversation.send({
messageType: 'RC:TypSts',
content: {
typingContentType: 'RC:TxtMsg' // 正在输入的消息类型
},
isStatusMessage: true // 正在输入建议发送状态消息, 不存储、不计数, 且仅在线用户可收到
}).then(function(message){
console.log('发送正在输入消息成功', message);
});
已读通知消息¶
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
var messageUId = '1301-NBJQ-MK31-3417'; // 消息唯一 Id, message 中的 messageUid
var lastMessageSendTime = 1550719033312; // 最后一条消息的发送时间
var type = '1'; // 备用,默认赋值 1 即可
// 以上 3 个属性在会话的最后一条消息中可以获得
conversation.send({
messageType: 'RC:ReadNtf',
content: {
messageUId: messageUId,
lastMessageSendTime: lastMessageSendTime,
type: type
}
}).then(function(message){
console.log('发送已读通知消息成功', message);
});
阅读状态同步¶
单聊会话中消息阅读状态处理详情请参考: 消息状态判定及处理方式
携带用户信息¶
Web 端如何展示用户信息 ?
一般展示用户信息的方法有两种:
通过开发者 App Server 获取用户信息
1、开发者 App Server 封装获取用户信息接口
2、通过 message.senderUserId 获取发送者 id
3、将发送者 id 传入 App Server 暴露的接口中, 获取对应用户信息
4、将用户信息展示到页面中
发消息时携带用户信息
1、获取当前用户(也就是发送者)的用户信息
2、发消息时携带当前用户信息
3、展示消息时, 通过消息体内的用户信息进行展示
以文本消息为例:
var conversation = im.Conversation.get({
targetId: 'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
conversation.send({
messageType: RongIMLib.MESSAGE_TYPE.TEXT, // 'RC:TxtMsg'
content: {
content: 'Hello RongCloud', // 文本内容
user: {
id: 'user2',
name: '用户二',
portraitUri: 'https://www.rongcloud/images/newVersion/log_wx.png'
},
extra: '' // 附加信息
}
}).then(function(message){
console.log('发送文字消息成功', message);
});
版权声明:本文标题:服务器怎么使用融云发图片消息,发送消息 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1725457322a1024351.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论