2013-02-07 253 views
0

我正在Windows機器上運行MQTT服務器(mosquitto)。該服務運行在端口號1883上。無法使用Mosquitto Broker建立websocket連接javascript客戶端

從mosquitto.org下載了mosquitto.js文件,並將調用如下 當我調試時,我看到結果「connection.readyState == 0」。如果我錯過了某些東西,請幫助我。我正在使用Chrome和Safari瀏覽器最新版本進行測試。 在此先感謝。

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<script type="text/JavaScript" src="./js/mosquitto-1.1.js"></script> 

<title>publisher</title> 

</head> 

<body> 
    <table align="center"> 
     <tr> 
      <td> 
       <h1>Publisher</h1> 
       <table> 
        <tr> 
         <td><textarea rows="5" cols="25" id="txtMsg"></textarea></td> 
        </tr> 
        <tr> 
         <td align="center"><input type="button" value="post" 
          onclick="javaScript:postMessage();" /></td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
    </table> 
</body> 
<script type="text/javascript"> 
function postMessage() 
{ 

    var postVal = document.getElementById('txtMsg').value; 
    var t = new Mosquitto(); 
    t.connect('ws://localhost',100000); 
    t.publish('inbox/msgrec',postVal,0,0); 

} 

是否有必要,我必須安裝碼頭服務器或使用Node.js的使用mosquitto JavaScript客戶端進行連接,或者是否有必要,我做對配置文件進行任何更改我的mosquitto安裝。

回答

0

它不應該是

t.connect('ws://localhost:1883',100000); 

+0

感謝您的答覆,我甚至嘗試過 – George

+0

我可以使用命令行發佈/訂閱。 – George

7

Mosquitto不直接支持WebSockets。您需要其他的東西來處理攜帶MQTT數據包(例如由mosquitto.js生成的)的WebSocket連接到原始MQTT中。

test.mosquitto.org上的服務器已將lighttpd作爲網絡服務器運行,mod_websockets提供WebSockets支持。使用這種方法可以連接到ws://test.mosquitto.org/mqtt。您需要自己創建一個類似的解決方案。 Apache也有websocket模塊可以做到這一點,或者你可以使用例如自己的軟件創建自己的websocket服務器。 libwebsockets。

+2

這現在已過時 - test.mosquitto.org正在偵聽端口8080上的websockets。 – ralight

相關問題