mqtt 是否能推送数据给多个客户端数据,一次多推。

如题所说,遇到一个bug
W/System.err( 1904): Client is not connected (32104)
W/System.err( 1904): at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:27)
W/System.err( 1904): at org.eclipse.paho.client.mqttv3.internal.ClientComms.internalSend(ClientComms.java:101)
W/System.err( 1904): at org.eclipse.paho.client.mqttv3.internal.ClientComms.sendAndWait(ClientComms.java:111)
W/System.err( 1904): at org.eclipse.paho.client.mqttv3.MqttClient.subscribe(MqttClient.java:588)
W/System.err( 1904): at org.eclipse.paho.client.mqttv3.MqttClient.subscribe(MqttClient.java:482)
W/System.err( 1904): at de.eclipsemagazin.mqtt.push.MQTTService$1.handleMessage(MQTTService.java:45)
W/System.err( 1904): at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err( 1904): at android.os.Looper.loop(Looper.java:136)
W/System.err( 1904): at android.app.ActivityThread.main(ActivityThread.java:5017)
W/System.err( 1904): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1904): at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err( 1904): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
W/System.err( 1904): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
W/System.err( 1904): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 1904): Timed out waiting for a response from the server (32000)
W/System.err( 1904): at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:27)
W/System.err( 1904): at org.eclipse.paho.client.mqttv3.internal.ClientComms.connect(ClientComms.java:162)
W/System.err( 1904): at org.eclipse.paho.client.mqttv3.MqttClient.connect(MqttClient.java:339)
W/System.err( 1904): at de.eclipsemagazin.mqtt.push.MQTTService$3.run(MQTTService.java:111)
W/System.err( 1904): at java.lang.Thread.run(Thread.java:841)
D/dalvikvm( 599): GC_CONCURRENT freed 874K, 19% free 4489K/5488K, paused 27ms+5ms, total 84ms

1个回答

你指的一次多推是指一对多的消息发送情况吗?

我们 云巴 也是基于MQTT协议实现的实时通信系统,消息推送是我们其中的一项产品服务。

在消息推送机制方面,我们支持频道(Topic)和别名(Alias)两种消息发布方式,通过频道(Topic)可以进行『一对多』的消息发布,而通过别名(Alias)可以进行『一对一』的消息发布。

通过“频道”进行一对多的消息发布

比如**A、B、C**订阅了**Topic a**,此时**D**向**Topic a**发送了一条消息,那么**A、B、C**都会收到这一条消息。

顺便讲下一对一的推送:

通过“别名”进行一对一通信

比如**A**设置自己的别名为**『a』**,**B**设置自己的别名为**『b』**,那么**A**给一个叫**『b』**的别名发送消息的时候,**B**就收到了消息。

消息的长连接方面:

Android SDK 会启动一个后台的 Service,创建并保持到云巴服务器的长连接,

一方面,云巴的服务器会负责向苹果的服务器发送 APNs 的消息; 另一方面,当应用在前台运行时,云巴会通过与 App 建立的长连接,直接推送内部消息。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐