mqtt 服务器与客户端通讯
mqtt 服务器与客户端通讯。
服务器端
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
64
|
/** * Created by niyl on 2016/1/13. */ var mosca = require( 'mosca' ); var MqttServer = new mosca.Server({ port: 8000 }); /** * 验证方法 * **/ var authenticate = function(client, username, password, callback) { //var authorized = (username.toString() === '18FE34F48379-DC' && password.toString() === '666666'); var authorized = (password.toString() === '666666' ); if (authorized){ //存储设备类型 client.type = username.toString().split( '-' )[ 1 ]; } callback( null , authorized); } // MqttServer.on( 'clientConnected' , function(client){ console.log( 'client connected' , client.id); }); /** * 监听MQTT主题消息 **/ MqttServer.on( 'published' , function(packet, client) { var topic = packet.topic; // console.log('message-arrived--->','topic ='+topic+',message = '+ packet.payload.toString()); switch (topic){ case 'pubMsg' : console.log( 'message-publish' , packet.payload.toString()); //MQTT转发主题消息 MqttServer.publish({topic: 'other' , payload: 'hello' }); //发送消息NODEJS console.log( 'HD: ' ); //发送socket.io消息 //io.sockets.socket(YHSocketMap.get('1000')).emit('subState', packet); break ; case 'other' : console.log( 'message-123' , packet.payload.toString()); break ; case 'order' : console.log( 'order' , packet.payload.toString()); break ; case 'test' : console.log( 'test' , packet.payload.toString()); break ; } }); MqttServer.on( 'ready' , function(){ console.log( 'mqtt is running...' ); //MqttServer.authenticate = authenticate; }); |
客户端程序
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
|
var mqtt = require( 'mqtt' ); var client = mqtt.createClient( 8000 , 'localhost' ,{clientId: '1' ,clean: false }); //向服务器订阅一个主题 client.subscribe( 'other' ,{qos: 1 }); client.subscribe( 'test' ,{qos: 1 }); //当消息到达时 var yy= 0 ; var ww= 0 ; client.on( 'message' , function (topic, message) { var tt=(message.toString()); console.log(tt); switch (tt) { case 'redd' : ww++; console.log( 10000 -ww); break ; case 'hello' : yy++; console.log(yy); break ; } }); // PUBLISH-发布消息 var num= 0 ; setInterval(function (){ client.publish( 'order' , ' ' + (num++),{qos: 1 , retain: true }); console.log( "num=" +num); }, 5000 ); setInterval(function(){ client.publish( 'pubMsg' , 'send ' ); // console.log("PubMsg"); }, 10000 ); setInterval(function(){ client.publish( 'test' , 'redd' ); // console.log("test"); }, 20000 ); var start=Date.now(); console.log( "服务端" +start); |
mqtt 服务器与客户端通讯的更多相关文章
- 一个基于TCP/IP的服务器与客户端通讯的小项目(超详细版)
1.目的:实现客户端向服务器发送数据 原理: 2.建立两个控制台应用,一个为服务器,用于接收数据.一个为客户端,用于发送数据. 关键类与对应方法: 1)类IPEndPoint: 1.是抽象类EndPo ...
- Netty——简单创建服务器、客户端通讯
Netty 是一个基于NIO的客户.服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用.Netty相当简化和流线化了网络应用的编程开发过程 ...
- C# MQTT 服务端客户端通讯
关于MQTT 在这里我就不做过多的介绍了 , 超时空连接点我 MQTT示例 注: 该示例演示统一使用WPF, 简单MVVM模式演示, 复制代码需注意引用 NuGet包 GalaSoft MQTT服务 ...
- Android BLE与终端通信(四)——实现服务器与客户端即时通讯功能
Android BLE与终端通信(四)--实现服务器与客户端即时通讯功能 前面几篇一直在讲一些基础,其实说实话,蓝牙主要为多的还是一些概念性的东西,当你把概念都熟悉了之后,你会很简单的就可以实现一些逻 ...
- MQTT——服务器搭建(一)
MQTT介绍 MQTT,是IBM推出的一种针对移动终端设备的基于TCP/IP的发布/预订协议,可以连接大量的远程传感器和控制设备: 轻量级的消息订阅和发布(publish/subscribe)协议 建 ...
- mqtt服务器apollo的搭建和测试工具paho的使用
(1)前言 MQTT协议是IBM开发的一个即时通讯协议; 基于发布/订阅的消息协议,近些年来被广泛应用于能源.电力.....等硬件性能低下的远程设备,此外国内很多企业使用MQTT作为android手机 ...
- 常见MQTT服务器搭建[转载]
简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程传感器和控制设备通 ...
- 快速搭建MQTT服务器(MQTTnet和Apache Apollo)
前言 MQTT协议是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分,http://mqtt.org/. MQTT is a machine-to-machine (M2M)/" ...
- 常见MQTT服务器搭建与试用
常见MQTT服务器搭建与试用 简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠 ...
随机推荐
- dp之混合背包poj1742(推荐)
题意:给你价值为a1,a2.....的货币,每种有c1,c2.......个,求这些货币所能组成的价值小于等于m有多少个..... 思路:很像一道多重背包题?那我一开始的确是用多重背包的思路编写的.. ...
- java的static块执行时机<转>
一.误区:简单认为JAVA静态代码块在类被加载时就会自动执行.证错如下: class MyClass1 { static {//静态块 System.out.println("static ...
- BloomFilter——大规模数据处理利器[转]
原文链接:原文 Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合. 一. 实 ...
- Java NIO使用及原理分析(二)(转)
在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如 ...
- 怎样编写socket套接字
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...
- div 背景自适应
.bg { background: url(images/title_bg.jpg); filter: "progid:DXImageTransform.Microsoft.AlphaIma ...
- 添加信任站点和允许ActiveX批处理
有两种写法 1.如果是用IP reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMa ...
- shell两个数字的运算,一共三个变量
#!/bin/bash #两个数运算的简单脚本 + ,一共三个参数 echo $# #对获取的参数以此判断是否包含[a-zA-Z]的东西,如果包含就退出.因为数字相加不是数字就是加减乘除 for i_ ...
- SBT树
转自:http://jcf94.com/2015/06/19/2015-06-19-sbt/ 总结: 二叉查找树(或称二叉搜索树.二叉排序树):大的右边.小的左边.问题:不平衡,输入有序情况下从平均性 ...
- LoadRunner性能分析指标解释
Transactions(用户事务分析) 用户事务分析是站在用户角度进行的基础性能分析. 1.Transation Sunmmary(事务综述) 对事务进行综合分析是性能分析的第一步,通过分析测试时间 ...