求解,创建了两个client,在同一个聊天室里发消息,收不到OnMessageReceived回调
请粘贴一下创建 Client 的代码。注意请使用不同的 AVRealtime 创建 Client,最好在同一进程下只有一个 AVRealtime 对象
请问是必须两个不同的clientid创建吗? 文档上的例子是两个client之间的对话,createconversationasync()第一个参数会传对方的clientId,如果需求是一个聊天室,各成员间该怎么监听对方发的消息
var client = await realtime.CreateClientAsync(roomId); client.CreateChatRoomAsync(roomId) //roomId作为房间号保持唯一
我现在是这么做的, GetChatRoomQuery()查询聊天室信息 client.OnMessageReceived += callbackMethod 做事件回调后的处理
Client Id 表示用户,所以不同用户一定是不同的 Client Id。如果在聊天室,收到的消息可能是来自聊天室各个成员的;可以根据消息的发送方 Id 确定是哪个用户发送的。
好的,我看一下,谢谢解答~
有个新问题,请教大佬
如果是普通对话,创建了4个Client,clientId都不同,其中一个成员对另外一个成员发起对话,CreateConversationAsync(),除了clientId都是缺省参数,SendMessageAsync()后,OnMessageReceived回调有执行,但其他成员在没有加入对话(JoinAsync)的情况下也接收到回调,conversation.MemberIds打印出log,确实只有两个成员
如果是聊天室,所有成员都接收不到事件回调
请打开一下 WebSocket 日志,看下有没有对「非会话中的成员」的消息发下来