openimsdk / open-im-server

IM Chat
https://openim.io
Apache License 2.0
14.05k stars 2.47k forks source link

[Other] The client SDK is listening to onConversationChanged but hasn’t received the conversation EX information. #2809

Closed yushuiying closed 2 hours ago

yushuiying commented 1 week ago

What would you like to share?

我调用服务端 createGroup 创群接口之后, 再调用 rpc的更新会话: s.conversationRpcClient.Client.SetConversations , 两个方法中都传了EX 信息, 但是客户端SDK 监听 onConversationChanged,没有获取到会话EX信息, openimserver 用的是3.8.0版本,请问是什么原因?

Additional information

No response

OpenIM-Robot commented 1 week ago

Hello! Thank you for filing an issue.

If this is a bug report, please include relevant logs to help us debug the problem.

Join slack 🤖 to connect and communicate with our developers.

FGadvancer commented 1 week ago

It seems like there are two conversation changes happening. The first change is triggered by the group creation message (this change shouldn’t include the conversation EX information, as creating the group doesn’t alter the EX information). The second change is caused by calling the RPC interface to update the conversation, which should include the updated EX information. Is this the situation you’re experiencing?

yushuiying commented 1 week ago

现在情况有发生变化,我的操作流程是这样的,先创群, 再 调用 rpc的更新会话: s.conversationRpcClient.Client.SetConversations, 再发送群消息, 这三个操作,客户端SDK 监听 onConversationChanged,如果客户端一直在线的情况, 会话EX是有获取到的, 但是如果客户端不在线的情况先按上面的流程操作, 之后客户端再登录聊天界面拉取会话时, 这时拉到的会话也是没有EX 信息的

OpenIM-Robot commented 1 week ago

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


Now the situation has changed. My operation process is as follows. First create a group, then call the rpc update session: s.conversationRpcClient.Client.SetConversations, and then send the group message. For these three operations, the client SDK monitors onConversationChanged. If If the client is always online, the session EX will be obtained. However, if the client is not online, follow the above process first. Then when the client logs in to the chat interface to pull the session, the pulled session will not be available. EX information