0

我在我的 Windows 机器上运行 MQTT 服务器 (mosquitto)。该服务在端口号 1883 上运行。

从 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 安装中对配置文件进行任何更改。

4

2 回答 2

7

Mosquitto 不直接支持 WebSockets。您需要其他东西来完成并将携带 MQTT 数据包(由例如 mosquitto.js 生成)的 WebSocket 连接转换为原始 MQTT。

test.mosquitto.org 的服务器有 lighttpd 作为 web 服务器运行,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 回答