MQTT协议 Websocket JS客户端

本文介绍如何使用MQTT协议结合HTML5的WebSocket实现客户端与服务器之间的实时通信。通过JavaScript代码示例,展示了如何建立连接、订阅主题及收发消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MQTT协议支持HTML5的Websocket客户端连接,只需要JS代码就能实现方便实时的通信,下面是实现步骤

1、引入JS文件

 

<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.min.js" type="text/javascript"></script>

 

2、使用代码

下面为核心代码的截取

//建立客户端实例​​​​​​​
//有些服务器设置了路径如ws://ip:127.0.0.1:8083/mqtt,没有的路径处为""或"/"
client = new Paho.MQTT.Client("服务器域名", Number(端口号),"路径","客户端ID");
//client = new Paho.MQTT.Client("服务器域名", Number(端口号), "客户端ID");//默认添加/mqtt路径
        client.connect({onSuccess:onConnect});//连接服务器并注册连接成功处理事件
        function onConnect() {
	        console.log("onConnected");
	        client.subscribe("/topic_back");//订阅主题
        }
        client.onConnectionLost = onConnectionLost;//注册连接断开处理事件
        client.onMessageArrived = onMessageArrived;//注册消息接收处理事件
        function onConnectionLost(responseObject) {
            if (responseObject.errorCode !== 0) {
                console.log("onConnectionLost:"+responseObject.errorMessage);
                console.log("连接已断开");
             }
        }
        function onMessageArrived(message) {
		  console.log("收到消息:"+message.payloadString);
		}
        //发送消息
        message = new Paho.MQTT.Message("hello");
		message.destinationName = "/topic";
		client.send(message);

 

3、代码运行效果

注意:此处只作演示,发送消息应该放在onConnect函数内,确保连接成功再发送!

4、效果展示

利用MQTT协议远程控制LED灯 http://www.llqqww.com/open/iot/ 

[20180701补]

上述案例所用MQTT服务器可能已用不了,最新测试用例:

<script src="mqttws31.min.js" type="text/javascript"></script>  
<script>  
client = new Paho.MQTT.Client("iot.eclipse.org", Number(443),'/ws',"clientId-c2471054-a703-4edc-b7dd-c7ed7b19072a");  
client.connect({useSSL: true,onSuccess: onConnect});   
function onConnect() {  
    console.log("onConnected");  
    client.subscribe("/topic_lqw_mcupush"); //订阅主题    
}  
</script>  

[20190319补]

使用下述代码会默认在添加"/mqtt"后缀路径,实际连接的是

ws://主机名:端口号/mqtt

client = new Paho.MQTT.Client("服务器域名", Number(端口号), "客户端ID");//建立客户端实例​​​​​​​

下面是修改后缀路径的方法,如果没有则"路径"为""或"/":

client = new Paho.MQTT.Client("服务器域名", Number(端口号),"路径","客户端ID");//建立客户端实例​​​​​​​

【转载请注明出处:http://blog.csdn.net/leytton/article/details/51896951

 

评论 67
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值