javascript-mqtt
js client使用paho-mqtt,官网地址:http://www.eclipse.org/paho/,参考http://www.eclipse.org/paho/clients/js/官网给出例子Getting Started,写出下面简单的测试代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<!DOCTYPE html> <html> <head> <meta charset= "utf-8" > <title>Centos7 mosquitto test</title> <script src= "jquery-3.2.1.min.js" ></script> <script src= "paho-mqtt-min.js" ></script> <script type= "text/javascript" > var hostname = "csxyz.xyz" ; //主机IP 106.14.181.32 var hostPort = 9001; //port var sub_count = 0; var client; function MQTTconnect() { client = new Paho.MQTT.Client(hostname, hostPort, "test" ); client.onMessageArrived = onMessageArrived; client.connect({onSuccess:onConnect}); console.log( "Host=" + hostname + ", port=" + hostPort); }; // called when the client connects function onConnect() { console.log( "onConnect succeeds" ); // client.subscribe('topic'); client.subscribe( '#' ); //订阅所有主题 } // called when a message arrives function onMessageArrived(message) { var topic = message.destinationName; var payload = message.payloadString; console.log( "onMessageArrived:" + payload); sub_count++; $( '#sub_count' ).val( '收到订阅' + sub_count + '条' ); $( '#sub_message' ).prepend( '<li>' + topic + ' = ' + payload + '</li>' ); } function button_onclick(){ var topic = $( '#topicsend' ).val(); var text = $( '#textsend' ).val(); if (topic== '' || text== '' ) { alert( "noTopic or noText" ); return ; } var message = new Paho.MQTT.Message(text); message.destinationName = topic; message.qos=0; client.send(message); }; $(document).ready( function () { MQTTconnect(); }); </script> </head> <body> <h1>mosquitto pub</h1> topic:<input type= 'text' id= 'topicsend' size= "60" /> <br> text :<input type= 'text' id= 'textsend' size= "60" /> <input type= 'button' value= "send" id= 'btn' onclick= "button_onclick()" /> </br> <h1>mosquitto sub</h1> <input type= 'text' id= 'sub_count' disabled /> <ul id= 'sub_message' ></ul> </body> </html> |
html在本地运行,测试结果:
在censtos的apache空间根目录下创建文件夹iot,将index.html和需要包含的js文件拷贝过去,使用浏览器打开csxyz.xyz/iot,也可以得到上面的结果。注意,文件上传的时候是在root用户下,需要更改权限,否则运行会报错的。
javascript-mqtt的更多相关文章
- javascript mqtt 发布订阅消息
js client使用paho-mqtt,官网地址:http://www.eclipse.org/paho/,参考http://www.eclipse.org/paho/clients/js/官网给出 ...
- 使用 WebSocket 客户端连接 MQTT 服务器
简介 近年来随着 Web 前端的快速发展,浏览器新特性层出不穷,越来越多的应用可以在浏览器端或通过浏览器渲染引擎实现,Web 应用的即时通信方式 WebSocket 得到了广泛的应用. WebSock ...
- getting-started-with-mqtt
来自:https://dzone.com/refcardz/getting-started-with-mqtt SECTION 1 Why MQTT? The Internet of Things ( ...
- 未读消息(小红点),前端与 RabbitMQ实时消息推送实践,贼简单~
前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢. 之前在 <springboot ...
- 使用javascript连接mqtt协议(自动重连问题)
因为之前是在rabbitmq的插件"RabbitMQ Web MQTT plugin "中看到使用了mqttws31.js的实例,由于对mqttws31不了解,网上下载了连接成功, ...
- JavaScript使用MQTT
1.MQTT Server使用EMQTTD开源库,自行安装配置: 2.JS使用Websocket连接通信. 3.JS的MQTT库为paho-mqtt,git地址:https://github.com/ ...
- TCP/IP, WebSocket 和 MQTT
按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP和MQTT是应用层的协议.在这三者之间, TCP是HTTP和MQTT底层的协议.大家对HTTP很熟悉,这里简要介绍下MQTT.M ...
- MQTT 消息 发布 订阅
当连接向一个mqtt服务器时,clientId必须是唯一的.设置一样,导致client.setCallback总是走到 connectionLost回调.报connection reset.调查一天才 ...
- MQTT和WebSocket
严格来说,MQTT跟WebSocket关系不大.他们不是在一个层级的. MQTT和TCP.WebSocket的关系可以用下图一目了然: 参考资料: http://www.zhihu.com/q ...
- 在线聊天室的实现(1)--websocket协议和javascript版的api
前言: 大家刚学socket编程的时候, 往往以聊天室作为学习DEMO, 实现简单且上手容易. 该Demo被不同语言实现和演绎, 网上相关资料亦不胜枚举. 以至于很多技术书籍在讲解网络相关的编程时, ...
随机推荐
- int**a = new int[5][6] 怎么delete
int **a = new int[5][6],这个根本编译不过去吧. 如果你想new一个二维数组出来,应该这样: int** a= new int*[5]; for (int i = 0; i &l ...
- C#中的out、ref、params详解
out参数: 如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组.但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,我们可以考虑使用out参数.out参数就侧重于 ...
- js识别设备
console.log(window.navigator); Navigator 对象属性 appCodeName 返回浏览器的代码名. appMinorVer ...
- 2018-01-19 Xtext试用: 快速实现简单领域专用语言(DSL)
环境搭建 使用的Eclipse版本: Oxygen.1a Release (4.7.1a) Build id: 20171005-1200, 通过添加Xtext - Download上列出的Relea ...
- 【代码笔记】Web-利用Dreamweaver实现form
一,打开Dreamweaver---->File---New---->如下图所示.选择HTML,点击OK. 二,会出现如下图所示界面.把光标放到Body处. 三,将上面的栏切换到Desig ...
- 获取url参数的方法(web)
//获取url参数的方法(web) function GetQueryString(name) { var reg = new RegExp("(^|&)" + n ...
- htmlElement.style 是只读属性
document.getElementById('test').style = 'opacity:0'; 在某些机型上,比如苹果 ios 10机型上,会报错.提示 style 属性为只读属性. 建议所 ...
- 异步 Apex 类
异步Apex类 一个Apex类可以定义为异步类,用于异步执行. 异步类可以通过多种方式实现: Future注解 批处理 Queueable接口 Schedulable接口 Future注解 使用Fut ...
- 移植marvell poncat3 demo板的总结
1.arm cpu自带的bootrom, 已经初始化好串口.SPI等外设,只要硬件设置好从SPI FLASH启动,则cpu自带的bootrom会自动打印出一些信息,显示出从SPI FLASH启动,驱动 ...
- 取消Eclipse等号、分号、空格代码自动补全
本文主要参考了以下文章 http://www.cnblogs.com/a-zx/p/3388041.html 本文基于 Eclipse Java EE IDE for Web Developers ...