私聊消息,比较公屏消息,相对简单。
分为文本, 图片,与动图商店的 emoji 和 gif, 礼物和宝箱。
不需要携带用户个人基础资料
普通文字聊天,来源用户输入
使用云信自带消息
同云信文档
String text = "this is an example";
// 创建一个文本消息
IMMessage textMessage =
MessageBuilder.createTextMessage(account, sessionType, text);
图片消息 ,来源用户相机、相册
使用云信自带消息
同云信文档
File file = new File("/sdcard/test.jpg");
// 创建一个图片消息
IMMessage message = MessageBuilder.createImageMessage(account, sessionType,
file, file.getName());
// 或者:创建一个图片消息并指定图片上传时使用的文件资源场景,
// "nos_scene_key"请替换成开发者已经配置的
IMMessage message =
MessageBuilder.createImageMessage(account, sessionType, file,
file.getName(),"nos_scene_key");
gif 消息 (10),来源动图商店, DTGif
{
"eventType": 10,
"data": {
// 消息推送文案
"pushContent": "[动画表情]",
// 图片缩略图地址 , 动图
"contentArray": "",
// 是否是动态图片
"isAnimated": false,
// 图片id
"imageId": "",
// 图片尺寸(pix), 宽度
"imageWidth": 0,
// 图片尺寸(pix), 高度
"imageHeight": 0,
}
}
emoji 消息(11),来源动图商店, DTEmoji
{
"eventType": 11,
"data": {
// 消息推送文案
// 使用 emoji name
"pushContent": "[动画表情]",
// 图片缩略图地址 , 动图
"contentArray": "",
}
}
为了减少后端工作量,减少 API。
公屏消息,与私聊消息存在差异。私聊消息中,两个用户的信息 ( 头像和昵称 ) ,没有必要,每次都发送。
参考之前的做法,
后端维护下,云信用户名片
现在的云信用户名片,昵称使用的是 ID
这个不是会增加一次网络请求吗?
会话的上一级,通话列表。
记得是,拉云信。
每一个用户信息 ( 头像等 )
这个 API 可以减少
我的理解,
用户每一次修改 , 后端同步云信。 拉信息的时候,后端不用维护,云信维护。 拉云信的聊天记录,顺便拉用户信息。
( 不这样,用户头像,网络请求 api ? )
而且, 后端和客户端,都省力。