PutUserSettingTopic = "UP" 这个动作触发逻辑

dg8804027 27天前 164

在测试的时候发现,只要双方用户都停留在聊天页面,每次发消息除了触发后台的MS动作 还会触发UP 这个更新用户设置的动作,但是只要接收方退出了当前聊天窗口,回到会话列表,那么发送方发消息的时候 就不会触发这个动作了。请问里面是什么样的逻辑

最新回复 (10)
  • HeavyRain 27天前
    引用 2
    接收方在聊天窗口内,当收到消息时,消息会被改成已读,然后需要同步到IM服务客户端阅读记录,也就是这个UP操作
  • dg8804027 24天前
    引用 3
    我们遇到了一个问题,就是正常在聊天窗口触发UP没有问题,但是ios端,退到会话列表了,依然触发UP,导致一看到消息就变成了已读,小红点一闪而过。这是什么导致的,安卓的正常,触发的路径是,接收方收到消息之后回复再退出到会话列表,如果不回复表现正常,回复了再退出,就会不断的触发UP
  • dg8804027 24天前
    引用 4
    而且看服务端日志 这个scope code 是7,这是scope客户端无法主动触发这个UP的吧
  • HeavyRain 24天前
    引用 5
    dg8804027 我们遇到了一个问题,就是正常在聊天窗口触发UP没有问题,但是ios端,退到会话列表了,依然触发UP,导致一看到消息就变成了已读,小红点一闪而过。这是什么导致的,安卓的正常,触发的路径是,接收方收到消息 ...
    有可能是iOS的窗口泄漏,窗口实际上还存在的,当收到消息就清除已读了
  • dg8804027 23天前
    引用 6

    viewControoler 执行了dealloc方法了 应该不会泄露才对

  • dg8804027 23天前
    引用 7

    IOS sdk有手动移除这个Callback的方法吗

  • HeavyRain 23天前
    引用 8
    dg8804027 ![](http://bbs.wildfirechat.cn/upload/images/202507/15_43_11_53529) viewControoler 执行了dealloc方法了 ...
    可以测试一下,在清除未读的方法上加上断点,看看是不是有走到清理的方法上,看一下是哪里调用的清理方法
  • HeavyRain 23天前
    引用 9
    dg8804027 IOS sdk有手动移除这个Callback的方法吗![](http://bbs.wildfirechat.cn/upload/images/202507/15_45_36_64787)
    没有,为啥要移除?
  • dg8804027 22天前
    引用 10
    原因应该是找到了,发现在输入框里面正在输入的时候 也会调用sdk 的mars::stn::sendMessageEx ,这种消息类型通过这个方法调用没有任何的回调,导致回调里面的强引用对象没有释放,页面没有进入到销毁的生命周期 退出到会话列表依然拉取消息列表自动已读 ,请问mars::stn::sendMessageEx 和 mars::stn::sendMessage的区别是什么,sendMessageEx 会自动重发吗
  • HeavyRain 22天前
    引用 11
    我用最新代码测试,发送正在输入消息后,成功的回调正常返回;当断网后,发送,失败的回调也返回了;所以请用最新demo验证一下是不是回调能够返回,如果你们有什么办法能够复现到不能返回的情况,请告诉我们方法。

    回调了可以用vc的weak引用,这样即使不返回,也不会导致view controller泄漏。

    这两个发送消息的代码在协议中基本是一样的,都是会重发的
返回