默认

[已解决] 求教MobileIMSDK和MobileIMSDK-web互通时消息间隔一条才能实时收到

查看数: 41903 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-04-13 17:09

正文摘要:

web端发送给app客户端第一条消息node服务器收到消息 tomcat使用版本7.0.0 mq版本3.6.5 erlang版本17.5 64位

评论

anawwwwqqqq 发表于 4 年前
我tomcat 已经删掉 appBase="webapps"

也重启了服务器  运行之后 rabbitmq有五条链接,,,web给app发消息 收一条丢一条。。怎么解
wu8610 发表于 5 年前
遇到同样问题,查半天,发现是tomcat配置问题,导致实例被加载两次

配置虚拟目录引起,如下配置:
<Host name="localhost" debug="0" appBase="webapps"  
       unpackWARs="true" autoDeploy="true"  
       xmlValidation="false" xmlNamespaceAware="false">  
   <Context path="" docBase="d:\myapp"/>  
</Host>  

我们在Host标签里配置了appBase="webapps",tomcat会去加载一次应用。
在<Context>里配置了一次docBase,tomcat会又去加载一次引用。
导致项目会加载二次。
解决:
<Host name="localhost" debug="0"   
       unpackWARs="true" autoDeploy="true"  
       xmlValidation="false" xmlNamespaceAware="false">  
   <Context path="" docBase="d:\myapp"/>  
</Host>  

去掉appBase="webapps"即可!
JackJiang 发表于 5 年前
引用:sanzhimayi 发表于 2019-04-14 16:18
问题已经解决 是一个eclipse和tomcat之间的一个很有意思的缓存机制造成的  由于过程比较啰嗦所以不太细说 ...

你理解了问题的原因,并解决了问题,是个好消息。

但是就像你图中截的这样,按MQ中的连接数来判定,这就涉及到具体的技术细节,除非对技术实现很了解,不然这个还是不能第一眼就能看出问题所在。比如下图中,RainbowChat和RainbowChat-Web互通时,正常情况下一共4个MQ连接。但重复运行的实例是加了一个还是2个,这个普通开发者不了解具体的实现细节的话,看这里的连接数其实也没多大的参考性。
[已解决] 求教MobileIMSDK和MobileIMSDK-web互通时消息间隔一条才能实时收到_11.jpg
JackJiang 发表于 5 年前
引用:sanzhimayi 发表于 2019-04-13 18:11
第一次打开tomcat 登陆到mq发现有两个连接连接了这正常吗 还是一个正常?

这是mq的技术细节,你不用管这此。你只要自已心里清楚,不要多个实例同时跑就行了。一切一实际运行情况为准。记得及时反馈。但前提是,你要理解我在3楼写的是什么意思
JackJiang 发表于 5 年前
好了,这个现实很有趣,但原因很简单:就是你的服务器环境下,可能同一个服务端可能还运行了另外的实例忘记了关闭(因为不只你一个人出现过这样的疏忽。。。。)。

很容易排查:就是把所有服务端关闭(最好是把物理服务器重启),然后确保只打开了唯一一个APP服务端、和唯一一个Web服务端。

交替出现收不到消息的原因是:如果同一个服务端存在两个或多个实例在运行的话,因为它们内部在MQ的消费者代码,所以交替从MQ里拿到了消息,而对于客户端而言,它只能实时收到它当前所登陆的实例的消息(另一个实例的消息就进入了离线逻辑了)

你仔细体会一下我上面的回复,然后,按照我的说的,来排查。你及时反馈结果哦!
sanzhimayi 发表于 5 年前
这个现象退出app后重新登陆就会受到之前丢掉的消息  做了离线处理了

返回顶部