2016-08-03 616 views
1

通過使用包含mqttws32.js文件的javascript實現使用帶有蚊子代理的MQTT的websocket。MQTT mosquitto - 在javascript中使用mqttws31.js實現websocket

Mosquitto版本:1.4.9

在開始我:

[email protected]:~$ mosquitto 
1470241326: mosquitto version 1.4.9 (build date Fri, 03 Jun 2016 09:22:47 +0100) starting 
1470241326: Using default config. 
1470241326: Opening ipv4 listen socket on port 1883. 
1470241326: Opening ipv6 listen socket on port 1883. 

由於mosquitto的最新版本支持的Web接口。

我用下面的代碼:

client = new Paho.MQTT.Client("localhost", 1883, "myclientid_" + parseInt(Math.random() * 100, 10)); 

四處錯誤:

WebSocket connection to 'ws://localhost:1883/mqtt' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

我聽者,我得到:

1470241581: New connection from ::1 on port 1883. 
1470241581: Socket error on client <unknown>, disconnecting. 

搜索我發現了一個解決方案添加以下行後到mosquitto.conf文件

listener 1884 
protocol websockets 

我更改爲端口到1884年,但仍然收到相同的錯誤。

+0

你使用什麼版本的蚊子?請在啓動時更新問題與蚊子輸出,以便我們可以看到聽衆設置正確 – hardillb

+0

rohan @ rohan-PC:〜$ mosquitto 1470241326:mosquitto版本1.4.9(生成日期2016年6月3日星期五09: 22:47 +0100)開始 1470241326:使用默認配置。 1470241326:在端口1883上打開ipv4偵聽套接字。 1470241326:在端口1883上打開ipv6偵聽套接字。 –

+0

編輯該問題,不要嘗試並將輸出發佈爲註釋 – hardillb

回答

2

Mosquitto沒有一個默認的配置文件位置,所以實際上你需要指定它的命令行

$ mosquitto -c /path/to/mosquitto.conf 

配置文件中也應該有一個額外的線,如果你還是想聽聽在1883年上原生MQTT連接,以及1884年

port 1883 

listener 1884 
protocol websockets 

的WebSockets這應該讓你一個正常運作的經紀人,實際上是在WebSockets的端口上偵聽MQTT 1884年

+0

感謝ü非常非常...... 它的工作完美.. 我生病搜索,但沒有發現任何 如果有可能我已經upvoted它100次 但對不起它不可能對我.. 再次謝謝很多人.. –

+0

你可以隨時接受答案(和upvote) – hardillb