js连接mqtt进行通信

1.html头部引入mqtt.js

<script src="https://unpkg.com/mqtt/dist/mqtt.js"></script>

2.连接已打开的mqttServer,若无mqtt服务端,点击下载https://www.emqx.io/zh/downloads

<script>
    // 连接选项
    const options = {
        clean: true, // true: 清除会话, false: 保留会话
        connectTimeout: 4000, // 超时时间
        // 认证信息
        clientId: 'test',	//客户端ID
        username: 'admin', //连接用户名
        password: 'public',//连接密码,默认为public,新版本登录后台界面会让你修改密码
        // 心跳时间
        keepalive: 60,
    }

    // 连接字符串, 通过协议指定使用的连接方式
    const connectUrl = 'ws://127.0.0.1:8083/mqtt' //连接服务端地址,注意查看ws协议对应的端口号
    const client = mqtt.connect(connectUrl, options)

    client.on('connect', () => {
        console.log('连接成功')
        // 订阅多个主题
        client.subscribe(
            ['tourist_enter', 'message_arrived'], //主题
            { qos: 1 },  
            (err) => {
                console.log(err || '订阅成功')
            },
        );
        // 发布消息
        client.publish('tourist_enter', 'Hello EMQ X', (err) => {
            console.log(err || '发布成功')
        })
    })
	//失败重连
    client.on('reconnect', (error) => {
        console.log('正在重连:', error)
    })
	//连接失败
    client.on('error', (error) => {
        console.log('连接失败:', error)
    })
	//接收消息
    client.on('message', (topic, message) => {
        console.log('收到消息:', topic, message.toString())
    })    
</script>

想要查看或者修改不同协议对应的端口号需要到配置文件(~安装目录/etc/emqx.conf)中查看,部分协议如下:

//tcp协议 (连接地址为 tcp://127.0.0.1:1883)
listeners.tcp.default {
bind = “0.0.0.0:1883”
max_connections = 1024000
}

//ssl(连接地址为 ssl://127.0.0.1:8883)
listeners.ssl.default {
bind = “0.0.0.0:8883”
max_connections = 512000
ssl_options {
keyfile = “etc/certs/key.pem”
certfile = “etc/certs/cert.pem”
cacertfile = “etc/certs/cacert.pem”
}
}

//ws协议 (连接地址为 ws://127.0.0.1:8083/mqtt)
listeners.ws.default {
bind = “0.0.0.0:8083”
max_connections = 1024000
websocket.mqtt_path = “/mqtt”
}

//wss协议 (连接地址为 wss://127.0.0.1:8084/mqtt)
listeners.wss.default {
bind = “0.0.0.0:8084”
max_connections = 512000
websocket.mqtt_path = “/mqtt”
ssl_options {
keyfile = “etc/certs/key.pem”
certfile = “etc/certs/cert.pem”
cacertfile = “etc/certs/cacert.pem”
}
}

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,适用于各种物联网和机器到机器通信场景。要使用JavaScript建立MQTT连接,可以使用MQTT.js库。 首先,我们需要安装MQTT.js库。可以使用npm(Node Package Manager)命令行工具在命令行中执行以下命令来进行安装: ``` npm install mqtt --save ``` 然后,在JavaScript代码中导入MQTT.js库: ```javascript const mqtt = require('mqtt'); ``` 接下来,我们可以使用mqtt.connect方法建立与MQTT代理服务器的连接。您需要提供代理服务器的URL,格式如下: ```javascript const client = mqtt.connect('mqtt://<mqtt_server>:<port>'); ``` 其中,`mqtt_server`是MQTT代理服务器的地址,`port`是MQTT代理服务器的端口号。 连接建立后,我们可以使用client.on方法来监听各种MQTT事件,比如连接成功、连接断开等。以下是一个示例: ```javascript client.on('connect', function() { console.log('连接成功'); }); client.on('close', function() { console.log('连接已关闭'); }); client.on('message', function(topic, message) { console.log('收到消息:' + message.toString()); }); // 订阅一个主题 client.subscribe('topic1'); ``` 在上述示例中,我们通过client.on方法分别监听了连接成功、连接关闭和收到消息等事件,并在事件触发时执行相应的回调函数。 最后,我们可以使用client.publish方法来发布消息。以下是一个示例: ```javascript client.publish('topic1', 'Hello MQTT'); ``` 以上就是使用JavaScript建立MQTT连接的简要步骤。通过MQTT.js库,我们可以轻松地实现与MQTT代理服务器的通信,从而在物联网和机器到机器通信中发挥作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值