[英]Paho Client Web Socket Can't Find mqtt
我得到了一個通過Java使用Paho / MQTT客戶端來更新網頁的項目。 該項目通過localhost:8080上的python啟動http服務器,然后在加載網頁時,main.js腳本啟動客戶端並運行連接,如下所示:
var client = new Paho.MQTT.Client("localhost",Number(8080),'0');
client.onConnectionLost = onConLost;
client.onMessageArrived = onMesArvd;
console.log("start connection...");
client.connect({onSuccess: onConnect});
問題是嘗試連接時出現以下錯誤,並且onConnect方法似乎未作為控制台進行連接。日志未出現:
WebSocket connection to 'ws://localhost:8080/mqtt' failed: Error during WebSocket handshake: Unexpected response code: 404
paho-mqtt.js中以紅色突出顯示的代碼如下:
new WebSocket(a, ["mqtt"])
我嘗試將mqtt文件添加到要從其運行localhost的文件夾中,但它僅更改響應代碼(如果存在mqtt文件夾,則為301,如果存在文件,則為200)。
添加項目隨附的mosquitto.conf:
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
listener 1883
listener 8080
protocol websockets
我注意到它與paho / mqtt客戶端不在同一個文件夾中,而在../dir2/setup/中。
我環顧四周,但還沒有人遇到這個問題,因此對您的幫助/指導將不勝感激。 謝謝!
感謝Santosh Balaji在這個問題上為我指明了正確的方向。
我相信我需要在pi上安裝mosquitto ,然后將mosquitto安裝目錄中的mosquitto.conf文件更改為項目提供的文件。 安裝並確認我的conf被使用后,js和Python連接沒有問題。
1)啟動mqtt之前,端口8080是否被其他進程占用。 嘗試使用conf文件啟動您的蚊子。 如果開始有任何錯誤,它將顯示錯誤。
mosquitto -c mosquitto.conf
2)嘗試將端口更改為9001,因為它是在mqtt中使用websockets的默認端口
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.