引用:qinghezi183 发表于 2022-07-13 10:18 嗯嗯 |
引用:JackJiang 发表于 2022-07-12 21:30 没问题了,大佬,多谢 |
引用:JackJiang 发表于 2022-07-12 21:30 大佬,也就是说现在就是有这种情况吗?我退出后,在登录进来后我还没看刚才在线别人给发的消息,未读数就没了? |
引用:qinghezi183 发表于 2022-07-12 17:55 未读数本来就是在内存里的 |
引用:JackJiang 发表于 2022-07-12 17:48 大佬,我现在就用的默认的逻辑,如果用户在线的话,消息就直发了,并没有存离线消息,但是用户并没有点击消息查看,还是显示未读数字1的,退出后再登进来,就没有未读数字了? |
引用:qinghezi183 发表于 2022-07-12 16:38 好好的代码你折腾啥呢,就用默认的逻辑啊,不然搞的左一个bug右一个Bug有啥意思 |
引用:qinghezi183 发表于 2022-07-12 10:21 大佬,现在是不是有这样的问题啊?我现在都设置成true后,测试的 如果A和B用户在线,A给B发消息,B收到了,显示了未读消息数字是1,但是其实离线消息没有存,b在重新登录进来,未读数字就没了??? |
引用:JackJiang 发表于 2022-07-12 11:01 大佬,我模拟了一个场景 |
你只管q_im2db_msg这个队列,另一个队列q_web2app你不能改(那是sdk层的队列,涉及实时通信逻辑) |
引用:JackJiang 发表于 2022-07-12 10:13 是这样的,大佬 现在是把RainbowChatServer和node那个server里,bridge开关都开成true之后, node生成两个队列,一个【q_im2db_msg】走了RainbowChatMQServer服务进行mq消费(这里是保存了聊天记录消息),一个【q_web2app】走了RainbowChatServer服务进行mq消费(这里保存了离线消息), RainbowChatMQServer里,我看代码已经实现了保存离线消息和消息记录的功能,应该是可以设置的吧,让node端生成的队列消息只走RainbowChatMQServer服务进行消费,而不去走RainbowChatServer服务里面的消费。 |
引用:qinghezi183 发表于 2022-07-12 09:56 java这边同样跟nodejs一样,实现消息往mq传递 |
引用:JackJiang 发表于 2022-07-11 17:40 大佬,您之前不是说RainbowChatMQServer有两个功能吗: 一个是保存nodejs服务通过MQ推过来的聊天记录保存功能; 另一个是保存nodejs服务通过mq推过来的离线消息功能。 我怎么操作?怎么用最少的更改?都走上面的两个功能呢 |
引用:JackJiang 发表于 2022-07-11 17:40 这些什么配置的改成true的还需要改吗?现在是因为都改成true,web端生成了两个队列,一个是消息落库的走mq消费了,一个是离线消息落库的走了rainbowchat端的mq消费了 |
引用:qinghezi183 发表于 2022-07-11 17:19 没必要折腾,因为现在这样的设计主要是基于RainbowChat和RainbowChat-Web两个产品同时使用时,而像你单独只用RainbowChat-Web的情况比较少见,所以代码看起来好像有点不太优雅,但实际是架构是从两个产品同时部署去考虑的。 如果一定要改,那你就把RainbowChat里有关消息落库的代码改成你web那边先落MQ,再由MQ消息者落库的逻辑,这没什么更多的影响,放心改就好了 |
引用:qinghezi183 发表于 2022-07-07 14:37 大佬,能提供个解决方案吗? 我现在想让保存聊天记录和保存离线消息的功能,在rainbowchatMqserver里消费,不走rainbowchatServer里面的,该如何配置实现呢?我这边只能用到了web端 |
引用:JackJiang 发表于 2022-07-11 17:11 是呢,前人挖坑 |
引用:qinghezi183 发表于 2022-07-11 17:09 嗯 以后记得要交接,改动代码也要版本管理起来,不然接手的人就倒霉了 |
引用:JackJiang 发表于 2022-07-07 16:28 对,代码比对了下,就是因为有人加了代码,才会出现重复的消息 |
确认一下,昨天发你的新版代码,不改动任何逻辑的情况下,不会出现重复对吧 |