默认
发表评论 5
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
关于群内昵称的修改后,在消息回显时不生效
用例:1、A修改群聊中个人信息的“昵称”,然后发送消息到群聊。

2、群组中 B 收到消息,显示的还是nickname,刷新页面后,nickname_ingroup可以正常显示。
3、B 重新登录进群聊,nickname_ingroup可以正常显示,但是发送新消息,B 的窗口还是显示nickname。
这个问题怎么解决?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

推荐方案
评论 5
没太看明白,你可以抽空拍个完整操作视频,贴个链接出来我瞅瞅具体是什么样的效果
签名: 《什么是IM系统的端到端加密?》http://www.52im.net/thread-4792-1-1.html
引用:JackJiang 发表于 2025-02-13 20:11
没太看明白,你可以抽空拍个完整操作视频,贴个链接出来我瞅瞅具体是什么样的效果

就是发送方修改群组中的昵称后,在接收方收到消息时,昵称不生效。
还是显示原先的 nickname,而不显示nickname_ingroup。
引用:batizhao 发表于 2025-02-14 08:45
就是发送方修改群组中的昵称后,在接收方收到消息时,昵称不生效。
还是显示原先的 nickname,而不显示n ...

调试一下看看对方发的消息里有没有把群昵称带过来
签名: 《什么是IM系统的端到端加密?》http://www.52im.net/thread-4792-1-1.html
引用:JackJiang 发表于 2025-02-14 10:33
调试一下看看对方发的消息里有没有把群昵称带过来

我大概看了下,消息结构是这样的:
var chatMsgEntity = ChatMsgEntity.prepareRecievedMessage(
    msgBody.f,         // 发送者ID
    msgBody.nickName,  // 发送者昵称
    msgBody.m,         // 消息内容
    0,                 // 时间戳
    msgBody.ty,        // 消息类型
    fingerPrintOfProtocal, // 消息指纹
    msgBody,           // 原始消息体
    true,             // 是否群聊
    msgBody.m2         // 扩展字段
);

JAVA队列里的消息: INFO  - [17:01:09.054][IM(MQ->DB)-消费↓] - [startWorker()中] 收到原始 msgFromMQ:{"m2":"14","cy":2,"f":"10001","nickName":"付军平","t":"0000000536","m":"这是测试消息","ty":0,"parentFp":"10c03b20-e9e9-11ef-8a98-0750bdcaba07","at":[],"fingerPrint":"10c03b20-e9e9-11ef-8a98-0750bdcaba07","MQDataType":1}


我感觉是要把 nickname_ingroup 加到 chatMsgEntity 里才行,不过我是后端开发,前端代码只是猜测。
这个应该只要改前端就行了吧?
引用:batizhao 发表于 2025-02-14 10:38
我大概看了下,消息结构是这样的:
[mw_shl_code=applescript,true]
var chatMsgEntity = ChatMsgEntit ...

是的,这是前端的事情,后端没有改动相关代码的话就不用管
签名: 《什么是IM系统的端到端加密?》http://www.52im.net/thread-4792-1-1.html
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部