d> 运行./broker broker_1883.cfg,显示如下: 20120823 110454.039 CWNAN9999I
Really Small Message Broker 20120823 110454.039 CWNAN9997I
Licensed Materials - Property of IBM 20120823 110454.039 CWNAN9996I
Copyright IBM Corp. 2007, 2010 All Rights Reserved 20120823 110454.039 CWNAN9995I
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 20120823 110454.039 CWNAN0049I
Configuration file name is broker_1883.cfg 20120823 110454.040 CWNAN0053I
Version 1.2.0, Aug 18 2010 17:03:35 20120823 110454.040 CWNAN0054I
Features included: bridge 20120823 110454.040 CWNAN9993I
Author: Ian Craggs (icraggs@uk.ibm.com) 20120823 110454.040 CWNAN0014I
MQTT protocol starting, listening on port 1883 ... ... 这样,推送服务的服务端就已经准备好了,监听1883端口。
3、推送客户端准备
a> 下载&解压AndroidPushNotificationsDemo项目(下载地址:https://github.com/tokudu/AndroidPushNotificationsDemo) b> 将该项目导入Eclipse中(File ->
Export -> Existing Projects into Workspace) c> 修改PushService.java中的MQTT_HOST常量为推送服务端的IP地址。 d> 启动Android模拟器,并安装该项目。
注意:在新版本的Android
SDK中可能会遇到以下错误。 ... ... 08-23 02:28:44.184: W/dalvikvm(282):
VFY: unable to find class referenced in signature (Lcom/ibm/mqtt/MqttPersistence;) 08-23 02:28:44.194: I/dalvikvm(282):
Failed resolving Lcom/tokudu/demo/PushService$MQTTConnection; interface 35 'Lcom/ibm/mqtt/MqttSimpleCallback;' 08-23 02:28:44.194: W/dalvikvm(282):
Link of class 'Lcom/tokudu/demo/PushService$MQTTConnection;' failed 08-23 02:28:44.194: E/dalvikvm(282):
Could not find class 'com.tokudu.demo.PushService$MQTTConnection', referenced from method com.tokudu.demo.PushService.connect 08-23 02:28:44.194: W/dalvikvm(282):
VFY: unable to resolve new-instance 42 (Lcom/tokudu/demo/PushService$MQTTConnection;) in Lcom/tokudu/demo/PushService; ... ... 08-23 02:28:44.404: E/AndroidRuntime(282):
java.lang.VerifyError: com.tokudu.demo.PushService 08-23 02:28:44.404: E/AndroidRuntime(282):
at com.tokudu.demo.PushActivity$1.onClick(PushActivity.java:32) 08-23 02:28:44.404: E/AndroidRuntime(282):
at android.view.View.performClick(View.java:2408) 08-23 02:28:44.404: E/AndroidRuntime(282):
at android.view.View$PerformClick.run(View.java:8816) 08-23 02:28:44.404: E/AndroidRuntime(282):
at android.os.Handler.handleCallback(Handler.java:587) 08-23 02:28:44.404: E/AndroidRuntime(282):
at android.os.Handler.dispatchMessage(Handler.java:92) 08-23 02:28:44.404: E/AndroidRuntime(282):
at android.os.Looper.loop(Looper.java:123) 08-23 02:28:44.404: E/AndroidRuntime(282):
at android.app.ActivityThread.main(ActivityThread.java:4627) 08-23 02:28:44.404: E/AndroidRuntime(282):
at java.lang.reflect.Method.invokeNative(Native Method) 08-23 02:28:44.404: E/AndroidRuntime(282):
at java.lang.reflect.Method.invoke(Method.java:521) 08-23 02:28:44.404: E/AndroidRuntime(282):
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 08-23 02:28:44.404: E/AndroidRuntime(282):
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-23 02:28:44.404: E/AndroidRuntime(282):
at dalvik.system.NativeStart.main(Native Method) ... ... 原因是发布的时候没有加入wmqtt.jar包,解决办法如下: 1> 在项目根目录下创建libs目录,并把wmqtt.jar包移入该目录。 2> 重新配置项目的Java Build Path(右键菜单中的Properties选项中)。 3> 重新打包发布即可。
运行效果如下:
点击“Start Push Service”按钮即可开启推送服务。这时我们可以看到rsmb的服务日志中打出以下提示: 20120823 113742.297 CWNAN0033I
Connection attempt to listener 1883 received from client tokudu/9774d56d682e549c on address 192.168.28.39:3345 其中的“9774d56d682e549c”就是对应的客户端ID号。
4、发送服务准备
a> 下载&解压PHP版的发送服务端代码send_mqtt.zip(下载地址:http://download.csdn.net/detail/shagoo/4520102) b> 修改etc/config.php中推送服务端的IP地址和端口号,即MQTT_SERVER_HOST和MQTT_SERVER_POST常量。 c> 打开对应的URL地址,就可以看到发送服务的界面,实际上就是向对应的推送客户端推送消息。
相关推荐
Android推送方案分析(MQTT、XMPP、GCM).doc Android推送服务(GCM) .doc GCM:入门.doc Mosquitto简要教程(安装&使用).doc 开源broker软件mosquitto(mqtt v3.1支持协议).doc 采用MQTT协议实现Android消息推送.doc
【描述】:“Android主流推送方案分析(MQTT/XMPP/GCM)一文中的准备发送服务”表明该压缩包内容可能涉及对Android平台上三种主要推送技术——MQTT、XMPP(Extensible Messaging and Presence Protocol)以及GCM...
### Android推送实现方案探讨 #### 背景与概述 随着移动互联网的迅速发展,智能手机...无论是官方提供的GCM服务、基于XMPP协议的自建方案,还是选择第三方推送服务,都旨在为用户提供更加流畅和及时的信息推送体验。
本文将探讨如何采用MQTT协议实现Android消息推送,并对比其他几种常见的推送方案,包括GCM服务、XMPP协议和HTTP轮循方式。MQTT协议因其轻量级、高效和低耗能的特性,成为Android消息推送的理想选择。 首先,我们来...
1)GCM要求Android系统必须是2.2以上的版本,所以对于不少2.2以前的系统没法推送 2)国内服务不稳定。而且不少国内的终端厂商纷纷把Google的服务去掉,替换上自己的。 3)需要用户绑定Google账号,但不少国内用户没有...
MQTT协议在Android系统下的推送解决方案有其独特的优势。首先,它能够有效减少应用的网络流量消耗,因为消息的推送是基于订阅者实际感兴趣的主题来完成的。其次,相比其他协议如GCM(Google Cloud Messaging)和XMPP...
服务器会负责生成和发送消息到客户端,这通常涉及到网络通信协议(如HTTP/HTTPS、GCM/FCM等)和消息队列(MQTT、XMPP等)。在Android端,开发者需要注册接收推送服务(如Google Firebase Cloud Messaging,简称FCM)...
- **推送通知**: 集成GCM(Google Cloud Messaging)或APNS(Apple Push Notification Service)进行离线消息通知。 6. **开发实践** - **认证机制**: 常见的有PLAIN、DIGEST-MD5、SCRAM-SHA-1等,确保用户身份...
4. 实时通信协议:掌握即时通信中使用到的XMPP协议、MQTT协议或WebSocket协议等,了解它们在实现消息推送和状态更新方面的特点和应用场景。 5. Android网络权限和安全:了解如何在AndroidManifest.xml中声明必要的...
4. **消息推送机制**:服务端如何实时推送消息到客户端是关键。可能涉及GCM (Google Cloud Messaging) 或 FCM (Firebase Cloud Messaging) 的使用,以及如何处理离线消息。 5. **数据存储**:客户端可能使用SQLite...
3. **推送通知服务**:当应用不在前台运行时,Android的GCM(Google Cloud Messaging)或FCM(Firebase Cloud Messaging)服务可以用于向设备发送消息,提示用户有新的聊天内容。 4. **UI设计与交互**:仿照QQ和...
5. **推送服务**:为了实现消息的即时推送,开发者通常会结合APNs(Apple Push Notification service)和GCM/FCM(Google Cloud Messaging/Firebase Cloud Messaging)等推送服务。 6. **群组管理**:在IM系统中,...
3. **实时推送**:Android应用中的即时消息推送通常依赖于Google的GCM(Google Cloud Messaging)或者FCM(Firebase Cloud Messaging)服务,它可以将服务器端的新消息推送到客户端,即使应用在后台运行也能接收到...
这通常涉及到了解各平台的推送服务,如iOS的APNs(Apple Push Notification service)和Android的GCM/FCM(Google Cloud Messaging/Firebase Cloud Messaging)。 10. **性能优化**: 为了提供流畅的用户体验,...
2. **推送服务**:APNS(Apple Push Notification Service)和GCM/FCM(Google Cloud Messaging/Firebase Cloud Messaging)用于实现实时通知。 3. **数据安全**:通过SSL/TLS加密保证通信安全。 4. **消息存储与...
5. **推送通知**:为了让用户即使在应用后台也能收到新消息,IM系统通常会集成APNs(Apple Push Notification Service)和GCM/FCM(Firebase Cloud Messaging)等推送服务。 6. **消息存储与同步**:服务器需要持久...
2. **推送服务**:为了实现实时消息通知,需要集成Google的GCM(Google Cloud Messaging)或Apple的APNs(Apple Push Notification service)服务,对于国内应用,可能还需要使用第三方推送服务如JPush、Umeng等。...
7. **推送服务**:使用APNs(Apple Push Notification service)和GCM(Google Cloud Messaging)等推送服务,实现实时消息推送。 8. **多平台适配**:尽管此压缩包只提及PC端,但完整的微信系统还包括移动端,源码...
3. **消息推送**:为了实现消息的即时送达,开发者可能使用了APNs(Apple Push Notification service)和GCM/FCM(Google Cloud Messaging/Firebase Cloud Messaging)等推送服务,确保即使应用在后台也能接收到新...