php: https://github.com/bluerhinos/phpMQTT
可以直接保存库,不用使用其他工具安装,github里面有例子。
js: https://docs.emqx.com/zh/cloud/latest/connect_to_deployments/js_sdk.html
大概内容:
使用cdn引入<script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>
js动态引入并连接服务器。
function loadScript(url,callback) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onload=callback;
document.head.appendChild(script);
}
loadScript("https://unpkg.com/mqtt/dist/mqtt.min.js",function(){
console.log('ws事件组件加载成功');
const client = mqtt.connect('ws://10.100.100.174:8083/mqtt', {
clientId:"web_01",
username:"",
password:"",
// ...other options
})
const topic = '/migu/Query'
const qos = 2
//订阅事件
client.subscribe(topic, { qos }, (error) => {
if (error) {
console.log('subscribe error:', error)
return
}
console.log(`Subscribe to topic '${topic}'`)
});
// 设置发布的主题、消息及 QoS
let sendMsg=function(payload,topic){
if (!topic)topic='/Result';
const qos = 2
client.publish(topic, payload, { qos }, (error) => {
if (error) {
console.error(error)
}
})
}
sendMsg('客户端已连接','/migu/state');
client.on('message', (topic, payload) => {
console.log('Received Message: ' + payload.toString() + '\nOn topic: ' + topic,data);
sendMsg("recv");
})
});