调用mClient.getConversationListAsync,如果会话列表有图片,发现会去请求图片,造成NG的请求压力

dg8804027 2天前 97

最新回复 (12)
  • x86 2天前
    引用 2
    你们其他方面查下,这个 api 不会导致去请求图片
  • dg8804027 2天前
    引用 3
    确定就是这个API导致的呀,这个API调用成功之后的数据处理都注释掉了,页面上都没有列表出来了,发现NG还一直在请求这个图片
  • x86 2天前
    引用 4
    不是这个 api 导致的,这个 api 仅仅是从数据查询数据,不会去请求图片
  • dg8804027 2天前
    引用 5
    这个API会首先触发服务器的什么方法呀,好像没有这个Topic
  • x86 2天前
    引用 6
    不会触发,是本地数据库查询的
  • dg8804027 2天前
    引用 7

    确定是执行了到mRemote.trancat() 这个方法就打印出来了

  • HeavyRain 2天前
    引用 8
    从1楼的nginx日志看,请求图片的频率不太高,所以不是会话列表和SDK显示调用的,有可能是用户点开看的
  • dg8804027 2天前
    引用 9
    这是我在调试的时候处理的,测试环境的数据,已经确定是IRemoteClient.getConversationListAync方法触发的
  • dg8804027 2天前
    引用 10
    这行代码执行之后,就看到控制台打印Glide找不到图片资源,请问是否有什么预加载的逻辑
  • x86 2天前
    引用 11
    需要渲染 UI 时,才会用到 glide,单纯调用 getConversationListAync 不会触发 glide 相关

    PS1: 为了方便调试,你可以在 client/src/main/AndroidManifest.xml 里面,将进程模型改成单进程,然后就可以直接在 clientService 里面打断点了

    PS2: 现在最新代码,默认也是单进程模式。

  • dg8804027 2天前
    引用 12
    我找到原因了,在ImageMessageContent里面的decode方法做了Glide的预加载,请问这样做是必要的吗
  • x86 2天前
    引用 13
    demo 没有这么做,是你们自己加的吧

    这是我们的代码:https://gitee.com/wfchat/android-chat/blob/master/client/src/main/java/cn/wildfirechat/message/ImageMessageContent.java
返回