mqtt使用介绍(sencha-touch下)

来源:互联网 发布:土木人的软件 编辑:程序博客网 时间:2024/06/01 07:37

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)函数

原创粉丝点击