默认
发表评论 7
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已解决] 求助MobileIMSDK连接rabbitmq报错问题
阅读(47499) | 评论(7 收藏 淘帖1
16:18:01.535 [main] ERROR net.nettime.mobileimsdk.server.bridge.MQProvider - [IMMQ-↓] - [startWorker()中] conn.createChannel()或Consumer操作时出错了,本次startWorker没有继续【暂停5秒后重试startWorker()】!
java.io.IOException: null
        at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:105)
        at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:101)
        at com.rabbitmq.client.impl.ChannelN.basicConsume(ChannelN.java:1255)
        at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.basicConsume(AutorecoveringChannel.java:471)
        at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.basicConsume(AutorecoveringChannel.java:461)
        at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.basicConsume(AutorecoveringChannel.java:456)
        at net.nettime.mobileimsdk.server.bridge.MQProvider.startWorker(MQProvider.java:494)
        at net.nettime.mobileimsdk.server.bridge.MQProvider.whenConnected(MQProvider.java:314)
        at net.nettime.mobileimsdk.server.bridge.MQProvider.start(MQProvider.java:277)
        at net.openmob.mobileimsdk.server.ServerCoreHandler.lazyStartupBridgeProcessor(ServerCoreHandler.java:137)
        at net.openmob.mobileimsdk.server.ServerLauncher.startup(ServerLauncher.java:218)
        at com.screen.mobilesdk.ServerLauncherImpl.main(ServerLauncherImpl.java:79)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'q_web2app' in vhost '/', class-id=60, method-id=20)
        at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
        at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:32)
        at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:366)
        at com.rabbitmq.client.impl.ChannelN.basicConsume(ChannelN.java:1253)
        ... 14 common frames omitted


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

标签:MobileIMSDK
上一篇:[已回复] 通过MobileIMSDK4j客户端向rainbowchat服务端发送长消息异常下一篇:[已回复] 请问如何查看MobileIMSDK的server端有没有收到信息?

本帖已收录至以下技术专辑

推荐方案
评论 7
引用:mingyan 发表于 2018-03-17 17:01
谢谢,明白了

ok
引用:JackJiang 发表于 2018-03-17 16:45
你现在是打算用MobileIMSDK做什么?要实现跟MobileIMSDK-Web的互通是吗?

“ q_web2app”这个队列对于Mo ...

谢谢,明白了
引用:mingyan 发表于 2018-03-17 16:55
我是服务端的

这讨论的就是服务端
引用:JackJiang 发表于 2018-03-17 16:45
你现在是打算用MobileIMSDK做什么?要实现跟MobileIMSDK-Web的互通是吗?

“ q_web2app”这个队列对于Mo ...

我是服务端的
引用:mingyan 发表于 2018-03-17 16:46
是的,现在demo配置我自己的rabbit地址就抱错,可以指导下吗

刚才你回复的时候,2楼的字我还没有回复完,你看仔细看看
引用:JackJiang 发表于 2018-03-17 16:45
你现在是打算用MobileIMSDK做什么?要实现跟MobileIMSDK-Web的互通是吗?

是的,现在demo配置我自己的rabbit地址就抱错,可以指导下吗
你现在是打算用MobileIMSDK做什么?要实现跟MobileIMSDK-Web的互通是吗?

“ q_web2app”这个队列对于MobileIMSDK这边来说它是消费者,理论上这个队列应该由生产者来创建,如果你是用MobileIMSDK(APP端im框架)和MobileIMSDK-Web(Web端im框架)来实现互通的话,MobileIMSDK-Web作为消息web to app这个方向的消息队列生产者来说,它会保证这个队列的建立,不需要MobileIMSDK这个消费者来关心。

简而言之,你只要把MobileIMSDK-Web那边也跑起来,这个队列就自动产生了。

而且从技术角度看,作为消费者的MobileIMSDK来说,当这个队列还没有建立时,肯定不应该由它来决定是否建立,而应该是生产者,所以这个提示对MobileIMSDK来说没有关系,只意味着MobileIMSK-Web那边还没有运行起来或者没有正常连接到RabbitMQ,仅此而已。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部