0

Windows マシンで MQTT サーバー (mosquitto) を実行しています。サービスはポート番号 1883 で実行されています。

mosquitto.org から mosquitto.js ファイルをダウンロードし、以下のように呼び出します。デバッグすると、「connection.readyState == 0」という結果が表示されます。私が何かを見逃している場合は、親切に助けてください。クロムとサファリの最新バージョンを使用してテストしています。前もって感謝します。

<!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);

}

jetty サーバーをインストールするか、node.js を使用して mosquitto javascript クライアントを使用して接続する必要がありますか、それとも mosquitto インストールの構成ファイルを変更する必要がありますか。

4

2 に答える 2

7

Mosquitto は WebSocket を直接サポートしていません。MQTT パケット (mosquitto.js などによって生成される) を運ぶ WebSocket 接続を生の MQTT に変換する何かが必要です。

test.mosquitto.org のサーバーでは、webserver として lighttpd が実行されており、mod_websockets を使用して WebSockets サポートを提供しています。この方法を使用して、ws://test.mosquitto.org/mqtt に接続することができます。同様のソリューションを自分で作成する必要があります。Apache には、これを行う websocket モジュールもあります。または、libwebsockets などを使用して独自の websocket サーバーを作成することもできます。

于 2013-02-07T21:08:50.047 に答える
0

そうじゃないかな

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

?

于 2013-02-07T12:41:20.040 に答える