服务器怎么使用融云发图片消息,发送消息

发送消息

消息结构¶

消息数据结构:

字段名

类型

说明

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.cn/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.com/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.cn.ronghub.com/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.cn'; // 富文本消息点击后打开的 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.cn/images/newVersion/log_wx.png'

},

extra: '' // 附加信息

}

}).then(function(message){

console.log('发送文字消息成功', message);

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值