mqtt使用介绍(sencha-touch下)
2013-12-09 12:48
246 查看
1.配置环境
在原项目的js文件夹下,放入mqttConfig.js+mqttloader.js+mqttws31.js
在.html中引入mqtt,body中
<script src="js/mqttloader.js"></script>
android项目下:
js文件夹下,放入mqttPlugin.js
native下src中,放入org整个文件夹,com文件夹下放入crccontact整个文件夹,拷入后会遇到一些error,这时将error地方的class名字改成自己的class名即可。
AndroidMainfest.xml中加入<service android:name="com.crccontact.mqtt.android.service.MqttService"/>
native文件夹下xml中config.xml中注册phoneGap的插件
<plugin
name="MqttPlugin"value="com.crccontact.mqtt.android.cordova.plugin.MqttPlugin"/>
<plugin
name="AMRPlugin"value="com.crccontact.mqtt.android.cordova.plugin.AMRPlugin"/>
2.原理
订阅(类型,可靠参数)->可接受自己订阅的类型的消息
发布(类型,内容,可靠参数)
下载mqtt的包,安装后,打开即开启了服务器,ia92里J2SE打开wqttSample.jar打开就是一个客户端,可以模拟mqtt的过程及调试代码
3.代码详解
在mqttConfig.js中加入关键代码
前面的基础配置:
var MQTT=MQTT?MQTT:{};
MQTT.host="192.168.1.111";
MQTT.port=1883;
MQTT.connectOptions={cleanSession:false};
MQTT._isMqttClientInit=false;
关键代码,订阅
initSub(MQTT.host,MQTT.port,type);
initSub(host,port,type)->
设置mqtt的client
client=newMQTTPlugin(MQTT.host,Number(MQTT.port),MQTT.clientId);
设置消息到达时的回调函数
client.setMessageCallback(MQTT.onMessageArrived);
设置subscribe成功的函数
MQTT.connectOptions['onSuccess']=onConnect;
var onConnect=function(){
subscribeType(type);
}
//订阅消息
function subscribeType(type)->
var topics=[type,];
var qoses=[2,];
MQTT.client.subscribe(topics,qoses);
//发布消息
pub(type,msg,qos)->
MQTT.client.publish(type,msg,2,function(){}, function(error){alert("发送失 败!"+JSON.stringify(error));});
//消息到达的函数
MQTT.onMessageArrived=function(message){}->
topic=message.topic;
msg=message.payloadString;
4.要是想有提醒的话,需要修改android中的代码
在crccontact.mqtt的android下service中MqttService.java中void showNotification(String status)函数和
void showNotificationWithSound(String status)函数
在原项目的js文件夹下,放入mqttConfig.js+mqttloader.js+mqttws31.js
在.html中引入mqtt,body中
<script src="js/mqttloader.js"></script>
android项目下:
js文件夹下,放入mqttPlugin.js
native下src中,放入org整个文件夹,com文件夹下放入crccontact整个文件夹,拷入后会遇到一些error,这时将error地方的class名字改成自己的class名即可。
AndroidMainfest.xml中加入<service android:name="com.crccontact.mqtt.android.service.MqttService"/>
native文件夹下xml中config.xml中注册phoneGap的插件
<plugin
name="MqttPlugin"value="com.crccontact.mqtt.android.cordova.plugin.MqttPlugin"/>
<plugin
name="AMRPlugin"value="com.crccontact.mqtt.android.cordova.plugin.AMRPlugin"/>
2.原理
订阅(类型,可靠参数)->可接受自己订阅的类型的消息
发布(类型,内容,可靠参数)
下载mqtt的包,安装后,打开即开启了服务器,ia92里J2SE打开wqttSample.jar打开就是一个客户端,可以模拟mqtt的过程及调试代码
3.代码详解
在mqttConfig.js中加入关键代码
前面的基础配置:
var MQTT=MQTT?MQTT:{};
MQTT.host="192.168.1.111";
MQTT.port=1883;
MQTT.connectOptions={cleanSession:false};
MQTT._isMqttClientInit=false;
关键代码,订阅
initSub(MQTT.host,MQTT.port,type);
initSub(host,port,type)->
设置mqtt的client
client=newMQTTPlugin(MQTT.host,Number(MQTT.port),MQTT.clientId);
设置消息到达时的回调函数
client.setMessageCallback(MQTT.onMessageArrived);
设置subscribe成功的函数
MQTT.connectOptions['onSuccess']=onConnect;
var onConnect=function(){
subscribeType(type);
}
//订阅消息
function subscribeType(type)->
var topics=[type,];
var qoses=[2,];
MQTT.client.subscribe(topics,qoses);
//发布消息
pub(type,msg,qos)->
MQTT.client.publish(type,msg,2,function(){}, function(error){alert("发送失 败!"+JSON.stringify(error));});
//消息到达的函数
MQTT.onMessageArrived=function(message){}->
topic=message.topic;
msg=message.payloadString;
4.要是想有提醒的话,需要修改android中的代码
在crccontact.mqtt的android下service中MqttService.java中void showNotification(String status)函数和
void showNotificationWithSound(String status)函数
相关文章推荐
- [Phonegap+Sencha Touch] 移动开发17 使用桌面版chrome调试安卓设备上的chrome和webview
- [Phonegap+Sencha Touch] 移动开发3、使用Weinre调试PhoneGap/Cordova应用
- Sencha Touch 2.0官方指南:如何使用数据视图
- Sencha Touch 2 官方文档翻译之 Using Views in your Applications(使用视图)
- 使用ASP.Net MVC5 Web API OData和Sencha Touch 开发WebAPP
- [Phonegap+Sencha Touch] 移动开发35 让phonegap的webview(安卓)使用chromium内核
- Sencha touch开发中使用图表EChart出现Initialize failed: invalid dom的解决办法
- [Phonegap+Sencha Touch] 移动开发54 初次使用Android Studio遇到的2个问题
- 如何使用sencha-touch控件显示平板上的tab界面
- [Phonegap+Sencha Touch] 移动开发5、Sencha touch结合Phonegap使用
- 在Sencha Touch 2中使用表单
- Sencha Touch 2 官方文档翻译之 Using Models(使用数据模型)
- Sencha Touch 2 Sass自定义图标的使用方法
- MQTTClient的使用介绍
- SenchaTouch2.3.1 中使用listpaging以及pullrefresh插件 做的分页示例
- sencha touch 扩展篇之使用sass自定义主题样式 (上)使用官方的api修改主题样式
- sencha touch安装使用
- 使用sencha touch cmd 4.0 创建项目、打包(加入全局变量、公用类、自定义扩展、资源文件)
- sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序
- 使用Sencha Touch加载服务器端数据。