如何获取消息新的extra?

alitw 25天前 396

在消息发出之后,后端可能会有其他一些处理改变消息的extra,但是后端改变extra后,前端没有办法获取新的消息的extra,getMessageById和getMessageByUid返回的依然是旧的

最新回复 (16)
  • x86 25天前
    引用 2
    你怎么改的?通过 server sdk/api 改的话,应当能触发客户端也更新的
  • alitw 8天前
    引用 3
    x86 你怎么改的?通过 server sdk/api 改的话,应当能触发客户端也更新的
    通过server sdk改的,客户端不会即时更新,需要刷新一下页面才更新
  • x86 8天前
    引用 4
    通过哪个 api 修改的?
  • alitw 8天前
    引用 5
    x86 通过哪个 api 修改的?
    用的这个Java SDK接口:/admin/message/update
  • x86 8天前
    引用 6
    有个 distribute 参数,传的是什么?
  • alitw 8天前
    引用 7
    x86 有个 distribute 参数,传的是什么?
    传的true
  • HeavyRain 8天前
    引用 8
    你测试看看,当修改时,有没有重新收到消息,收到消息的extra对不对,切换一下会话再回来对不对?我们先确认一下是服务没有处理对,还是客户端协议栈的问题,还是UI的问题
  • alitw 7天前
    引用 9
    HeavyRain 你测试看看,当修改时,有没有重新收到消息,收到消息的extra对不对,切换一下会话再回来对不对?我们先确认一下是服务没有处理对,还是客户端协议栈的问题,还是UI的问题
    不会重新收到消息,extra是空的,切换一下会话也还是这样
  • alitw 6天前
    引用 10
    HeavyRain 你测试看看,当修改时,有没有重新收到消息,收到消息的extra对不对,切换一下会话再回来对不对?我们先确认一下是服务没有处理对,还是客户端协议栈的问题,还是UI的问题
    我大致说一下场景,就是我们在发送一条消息后,会另外调取后端的一个接口,这个接口会去调用facebook等社媒的api去同步发送消息,不论发送成功失败都会通过/admin/message/update来更新消息的extra来更新状态。
    但是消息发送后前端在第一时间感知不到extra的变化,不知道消息发送成功还是失败,我试过用loadRemoteMessage返回的extra依然是undefined,必须要刷新一下页面才能获取到新的extra
  • x86 6天前
    引用 11
    你好,我们测试了一下,接收端是正常的。

    通过 server api 更新消息的 extra 时,能收到提示,且之后,getMessageById 获取到的消息里面的 messageContent.extra 已更新

  • alitw 6天前
    引用 12
    x86 你好,我们测试了一下,接收端是正常的。 通过 server api 更新消息的 extra 时,能收到提示,且之后,getMessageById 获取到的消息里面的 messageContent ...
                // 根据messageUid获取消息详情
                IMResult<OutputMessageData> result = MessageAdmin.getMessage(messageUid);
                OutputMessageData messageData = result.getResult();
                MessagePayload payload = messageData.getPayload();
            // 构建更新参数
                JSONObject extraJo = new JSONObject();
                extraJo.put("clientId", clientId);
                extraJo.put("id", data);
                extraJo.put("status", "200");
                extraJo.put("errorMsg", StrUtil.EMPTY);
                extraJo.put("sender", sender);
                payload.setExtra(JSON.toJSONString(extraJo));
                IMResult<Void> admin = MessageAdmin.updateMessageContent("whatsApp", messageUid, payload, true);


    这是代码,能帮看下有什么问题吗,Java SDK版本是1.3.9
  • x86 6天前
    引用 13
    代码没问题的

    你先确认下,你没有收到extra 更新是消息的发送者这边,还是接受者那边?
  • alitw 6天前
    引用 14
    x86 代码没问题的 你先确认下,你没有收到extra 更新是消息的发送者这边,还是接受者那边?
    发送者
  • x86 6天前
    引用 15
    ok,发送者这边是有些问题,我们查一下
  • alitw 6天前
    引用 16
    x86 ok,发送者这边是有些问题,我们查一下
    好的谢谢
  • x86 6天前
    引用 17
    已修复,请联系我们更新im-server
返回