- 登录和进入房间的行为有回调,需要回调成功才算成功。
init调用后,可以立即调用login
进入房间要在登录回调成功后,才可以调用
发送私聊消息,要在登录回调成功后才可以调用
发送房间消息,要在进入房间回调成功后,才可以调用。
- C++的回调函数不在主线程,回调里处理,需要注意线程安全。(cocos不能在这里直接处理场景相关的东西)
- 语音消息发送的流程
init -> login -> onLogin -> joinRoom -> SendAudioMessage -> StopAudioMessage -> OnSendAudioMessageStatus
- 语音消息接收的流程
init -> login -> onLogin -> joinRoom -> OnRecvMessage -> Download -> OnDownload
- 如何保持SDK的登陆状态和游戏保持同步
SDK内部包含断线重试 ,但是不会一直重试,默认配置会重试5分钟左右,如果依旧连接不上,会通过OnLogout通知。要保持游戏和IM的登陆同步,需要再以下几个地方添加上重试登陆的逻辑:
判断OnLogin返回的结果,如果不是Success(int值为0),就可以尝试再次调用登陆;
在OnLogout的通知里,判断游戏是否在线,如果游戏是在线状态,就尝试再次调用登陆->进频道。注意如果是主动调用的logout接口,就不要重试。