簡體   English   中英

Paho客戶端Web套接字找不到mqtt

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM