iOS 在Wi-Fi情况下拉取消息很慢

iOS_bug 1月前 168

想请教一个问题,我们应用集成的野火im(iOS,安卓,服务器), 然后我们做了二开。但是在iOS 发现,当iPhone 连接Wi-Fi 时,第一次安装app时,拉取消息列表很慢。但是相同情况下在4g的情况下没有这个问题。请问你们在哪个版本里修复了这个问题吗? 附件里提供了在Wi-Fi和4G两种情况下,iOS debug的日志。在Wi-Fi情况下拉取消息要比4G慢很多。

上传的附件:
最新回复 (11)
  • HeavyRain 1月前
    引用 2
    看了一下日志,应该就是wifi下,客户端到IM服务的网络速度不如手机流量好
  • iOS_bug 1月前
    引用 3
    HeavyRain 看了一下日志,应该就是wifi下,客户端到IM服务的网络速度不如手机流量好
    这个有什么解决办法吗?有好多用户反馈在Wi-Fi下获取消息列表很慢,有时候能获取几分钟都获取不到。但是4G情况下就没有这个问题。安卓也没有这种问题。我自己也看了下mars那边,是不是和老的mars版本有关?
  • iOS_bug 1月前
    引用 4
    HeavyRain 看了一下日志,应该就是wifi下,客户端到IM服务的网络速度不如手机流量好
    请大佬有时间帮忙再看下,问题比较棘手。期待您的回复
  • HeavyRain 1月前
    引用 5
    应该跟mars版本无关,看日志就是网络慢。wifi那个日志看到同步消息试用了两次,第一次超过13秒没有完成。第二次同步下来了,数据大小是40KB。也就是说40KB的数据同步13秒没有完成
  • HeavyRain 1月前
    引用 6
    检查一下服务器监控,带宽有没有超
  • iOS_bug 1月前
    引用 7
    HeavyRain 应该跟mars版本无关,看日志就是网络慢。wifi那个日志看到同步消息试用了两次,第一次超过13秒没有完成。第二次同步下来了,数据大小是40KB。也就是说40KB的数据同步13秒没有完成
    感谢您的回复。麻烦再问下,您说的“看日志就是网络慢”的意思是指13秒没完成40KB数据同步?我上传的日志,哪里是表示第一次超过13秒没有完成?能帮我标记一下吗?谢谢。
    因为我对比了4G的没找到区别
  • HeavyRain 1月前
    引用 8
    在Wifi的那个日志中,

    [E][mars::stn][longlink_task_manager.cc, __RunOnTimeout, 241][task first-pkg timeout taskid:6,  nStartSendTime=393350, nfirstpkgtimeout=13
    这句话是拉取消息的任务超时,时间是13秒

    [I][mars::proto][stn_callback.cc, Buf2Resp, 1933][PROTO -> response data size 40213
    这是第二次拉取消息成功的数据,大小是40KB
  • iOS_bug 20天前
    引用 9
    HeavyRain 在Wifi的那个日志中, [E][mars::stn][longlink_task_manager.cc, __RunOnTimeout, 241][task first-pkg timeout ...
    感谢您的回复,我们经过排查连接链路发现,一部分用户在使用app在Wi-Fi的情况下先通过1883端口无法连接,进而使用80端口重试。但是在4G的情况下1883端口就没问题。应该是某些路由器或者网络限制了1883端口。我查阅了你们野火的官网,也可以使用8883端口,支持LTS加密。
    使用8883的好处如下:
    1.规避端口被 Wi-Fi 网络封锁的问题
    2.提升安全性
    3.减少客户端自动回退行为,提升连接成功率和体验

    请问我换成8883后,是否能缓解目前的1883端口的问题?
  • HeavyRain 20天前
    引用 10
    不支持tls加密。不过这个1883端口可以换成任意端口。你们可以试试换成别的端口看一下
  • iOS_bug 20天前
    引用 11
    HeavyRain 不支持tls加密。不过这个1883端口可以换成任意端口。你们可以试试换成别的端口看一下
    您的意思是,8883端口不支持设置使用 TLS(启用 SSL)?

    // 启用 MQTT over SSL
    WFCCNetworkService.shared().isEnableTLS = true

    // 设置连接端口为 8883(默认是 1883)
    WFCCNetworkService.shared().setMqttPort(8883)
  • HeavyRain 20天前
    引用 12
    我们代码中没有这两个接口,是不是你们修改过。你们修改过我们就没有办法支持了
返回