差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
im:web:basics:message [2019/12/16 02:43] lizg [拉取历史消息] |
im:web:basics:message [2020/01/14 08:24] lizg |
||
---|---|---|---|
行 25: | 行 25: | ||
</code> | </code> | ||
- | **注意:** 发送ext 扩展消息,可以没有这个字段,但是如果有,值不能是“ext:null”这种形式,否则出错 | + | **注意:** 发送ext 扩展消息,可以没有这个字段,但是如果有,值不能是"ext:null"这种形式,否则出错 |
===== 发送消息 ===== | ===== 发送消息 ===== | ||
行 42: | 行 42: | ||
多样化的消息类型,覆盖多种场景下的消息需求。 | 多样化的消息类型,覆盖多种场景下的消息需求。 | ||
- | ==== 发送文本消息(单聊) ==== | + | ==== 发送文本消息(单聊、扩展) ==== |
单聊发送文本消息示例如下: | 单聊发送文本消息示例如下: | ||
行 167: | 行 167: | ||
}; | }; | ||
</code> | </code> | ||
- | **注意:**%%当为 WebIM 添加了 Emoji 属性后,若发送的消息含 WebIM.Emoji 里特定的字符串,connection 就会自动将这些字符串和其它文字按顺序组合成一个数组,每一个数组元素的结构为 {type:'emoji(或者txt)',data:''}%% | + | **注意:**%%当为 WebIM 添加了 Emoji 属性后,若发送的消息含 WebIM.Emoji 里特定的字符串,connection 就会自动将这些字符串和其它文字按顺序组合成一个数组,每一个数组元素的结构为 {type:'emoji(或者txt)',data:'msg(或者src)'}%% |
当 type='emoji' 时,data 表示**表情图像的路径**; | 当 type='emoji' 时,data 表示**表情图像的路径**; | ||
行 523: | 行 523: | ||
console.log(list); | console.log(list); | ||
}, | }, | ||
- | recallMessage: function( message ){}, //收到消息撤回回执 | + | onRecallMessage: function( message ){}, //收到消息撤回回执 |
onReceivedMessage: function(message){}, //收到消息送达服务器回执 | onReceivedMessage: function(message){}, //收到消息送达服务器回执 | ||
onDeliveredMessage: function(message){}, //收到消息送达客户端回执 | onDeliveredMessage: function(message){}, //收到消息送达客户端回执 | ||
行 561: | 行 561: | ||
</code> | </code> | ||
- | **注意:**当为 WebIM 添加了 Emoji 属性后,若发送的消息含 WebIM.Emoji 里特定的字符串,connection 就会自动将这些字符串和其它文字按顺序组合成一个数组,每一个数组元素的结构为 **{type:'emoji(或者txt)',data:''}** | + | **注意:**当为 WebIM 添加了 Emoji 属性后,若发送的消息含 WebIM.Emoji 里特定的字符串,connection 就会自动将这些字符串和其它文字按顺序组合成一个数组,每一个数组元素的结构为 **{type:'emoji(或者txt)',data:type}** |
当 type='emoji' 时,data 表示**表情图像的路径**; | 当 type='emoji' 时,data 表示**表情图像的路径**; | ||
行 646: | 行 646: | ||
---- | ---- | ||
===== 消息回执 ===== | ===== 消息回执 ===== | ||
+ | 单聊: | ||
* 已送达回执:在 webim.config.js 中配置 delivery 为 true ,在收到消息时会自动发送已送达回执,对方收到已送达回执的回调函数是 onDeliveredMessage | * 已送达回执:在 webim.config.js 中配置 delivery 为 true ,在收到消息时会自动发送已送达回执,对方收到已送达回执的回调函数是 onDeliveredMessage | ||
| | ||
* 已读回执:当认为用户已读某条(些)消息时,可以生成已读回执,再进行发送 | * 已读回执:当认为用户已读某条(些)消息时,可以生成已读回执,再进行发送 | ||
| | ||
- | * 对方收到已送达回执的回调函数是 onReadMessage | + | 对方收到已送达回执的回调函数是 onReadMessage |
<code javascript> | <code javascript> | ||
var bodyId = message.id; // 需要发送已读回执的消息id | var bodyId = message.id; // 需要发送已读回执的消息id | ||
行 660: | 行 660: | ||
}); | }); | ||
Demo.conn.send(msg.body); | Demo.conn.send(msg.body); | ||
+ | </code> | ||
+ | |||
+ | |||
+ | 群聊: | ||
+ | |||
+ | * 发送群可以收已读回执的消息 | ||
+ | <code javascript> | ||
+ | sendGroupReadMsg = () => { | ||
+ | let id = conn.getUniqueId(); // 生成本地消息id | ||
+ | let msg = new WebIM.message('txt', id); // 创建文本消息 | ||
+ | msg.set({ | ||
+ | msg: 'message content', // 消息内容 | ||
+ | to: 'username', // 接收消息对象(用户id) | ||
+ | roomType: true, | ||
+ | success: function (id, serverMsgId) { | ||
+ | console.log('send private text Success'); | ||
+ | }, | ||
+ | fail: function(e){ | ||
+ | console.log("Send private text error"); | ||
+ | } | ||
+ | }); | ||
+ | msg.setGroup("groupchat"); | ||
+ | msgObj.body.msgConfig = { allowGroupAck: true } | ||
+ | conn.send(msg.body); | ||
+ | } | ||
+ | </code> | ||
+ | * 收到需要回执的消息后发送回执 | ||
+ | |||
+ | <code javascript> | ||
+ | sendReadMsg = () => { | ||
+ | let msg = new WebIM.message("read", WebIM.conn.getUniqueId()); | ||
+ | msg.body.group = "groupchat"; | ||
+ | msg.body.msgConfig = { allowGroupAck: true }; | ||
+ | msg.body.ackContent = JSON.stringify({}); | ||
+ | WebIM.conn.send(msg.body); | ||
+ | } | ||
+ | </code> | ||
+ | * 监听收到群组消息回执:分两种情况 1、正常在线时可以在 onReadMessage 函数里监听到回执,2、离线时收到群组消息回执,登录后会在onStatisticMessage函数里监听到回执 | ||
+ | |||
+ | <code javascript> | ||
+ | // 在线时可以在onReadMessage里监听 | ||
+ | onReadMessage: (message) => { | ||
+ | const { mid } = message; | ||
+ | const msg = { | ||
+ | id: mid | ||
+ | }; | ||
+ | if(message.groupReadCount){ | ||
+ | // 消息阅读数 | ||
+ | msg.groupReadCount = message.groupReadCount[message.mid]; | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | // 离线时收到回执,登录后会在这里监听到 | ||
+ | onStatisticMessage: (message) => { | ||
+ | let statisticMsg = message.location && JSON.parse(message.location); | ||
+ | let groupAck = statisticMsg.group_ack || []; | ||
+ | } | ||
+ | </code> | ||
+ | * 查看读过消息的用户 | ||
+ | <code jacascript> | ||
+ | WebIM.conn.getGroupMsgReadUser({ | ||
+ | msgId, // 消息id | ||
+ | groupId, // 群组id | ||
+ | success(data){ | ||
+ | resolve(data); | ||
+ | }, | ||
+ | error(err){ | ||
+ | reject(err); | ||
+ | }, | ||
+ | }); | ||
</code> | </code> | ||