服务端会话服务
更新时间: 2024/03/14 16:36:28
服务端会话列表由服务器维护:
-
支持存储用户全量的会话历史列表以及保存最近一条消息
-
支持客户端从服务端拉取会话列表,不支持同步到本地会话列表
-
不支持未读数
技术原理
-
RecentSession
:与用户最近有过会话的联系人信息,包括联系人帐号、最近一条消息的时间、扩展字段、消息内容等。 -
RecentSessionList
:一页会话列表数据,包含一页RecentSession
数据,及是否有更早消息的提示。
前提条件
已在云信控制台 IM 即时通讯 > 全局功能开通服务端会话列表功能。
获取服务端会话
获取服务端会话列表
-
接口:
-
参数说明:
参数 | 说明 |
---|---|
option |
配置参数,详见 QueryMySessionOption |
- 示例代码:
javaNIMClient.getService(MsgService.class).queryMySessionList(startTime, endTime, 1, queryAmount, 1).setCallback(new RequestMySessionListCallback(queryAmount, startTime, this::showSessionList));
获取服务端指定会话
-
参数说明:
参数 | 说明 |
---|---|
sessionId |
会话 ID。如会话为单聊类型,则为聊天对象的 accid;如为群聊类型,则为群 ID,即teamId。 |
- 示例代码:
javaNIMClient.getService(MsgService.class).queryMySession(sessionId).setCallback(new RequestCallback<RecentSession>() {
@Override
public void onSuccess(RecentSession param) {
resultTV.setText(sessionToString(param));
}
@Override
public void onFailed(int code) {
Toast.makeText(SessionActivity2.this, "获取单条会话失败, code=" + code, Toast.LENGTH_SHORT).show();
}
@Override
public void onException(Throwable exception) {
exception.printStackTrace();
Toast.makeText(SessionActivity2.this, "获取单条会话出现异常, msg=" + exception.getMessage(), Toast.LENGTH_SHORT).show();
}
});
修改服务端会话扩展信息
-
参数说明:
参数 | 说明 |
---|---|
sessionId |
会话 ID。如会话为单聊类型,则为聊天对象的 accid;如为群聊类型,则为群 ID,即teamId。 |
ext |
会话的扩展字段,仅自己可见。 |
- 示例代码:
javaNIMClient.getService(MsgService.class).updateMySession(sessionIdET.getText().toString(), extET.getText().toString()).setCallback(new RequestCallback<Void>() {
@Override
public void onSuccess(Void param) {
Toast.makeText(SessionActivity2.this, "更新会话成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailed(int code) {
Toast.makeText(SessionActivity2.this, "更新会话失败, code=" + code, Toast.LENGTH_SHORT).show();
}
@Override
public void onException(Throwable exception) {
Toast.makeText(SessionActivity2.this, "更新会话出现异常, msg=" + exception.getMessage(), Toast.LENGTH_SHORT).show();
}
});
删除服务端会话
-
参数说明:
参数 | 说明 |
---|---|
sessionIdArr |
聊天、群组、超大群每一项会话的格式,分别是:p2p | accid、team | tid、super_team | tid |
- 示例代码:
javaNIMClient.getService(MsgService.class).deleteMySession(selectedArr).setCallback(new RequestCallback<Void>() {
@Override
public void onSuccess(Void param) {
Toast.makeText(SessionActivity2.this, "删除会话成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailed(int code) {
Toast.makeText(SessionActivity2.this, "删除会话失败, code=" + code, Toast.LENGTH_SHORT).show();
}
@Override
public void onException(Throwable exception) {
exception.printStackTrace();
Toast.makeText(SessionActivity2.this, "删除会话出现异常, msg=" + exception.getMessage(), Toast.LENGTH_SHORT).show();
}
});
此文档是否对你有帮助?