我正在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);
}
我是否有必要安装jetty服务器或使用node.js使用mosquitto javascript客户端进行连接,或者我是否有必要在mosquitto安装中对配置文件进行任何更改。
答案 0 :(得分:7)
Mosquitto不直接支持WebSockets。您还需要其他能够将带有MQTT数据包的WebSocket连接(由例如mosquitto.js生成)转换为原始MQTT的其他内容。
test.mosquitto.org上的服务器将lighttpd作为web服务器运行,mod_websockets提供WebSockets支持。可以使用此方法连接到ws://test.mosquitto.org/mqtt。您需要自己创建一个类似的解决方案。 Apache也有可以执行此操作的websocket模块,或者您可以使用例如创建自己的websocket服务器。 libwebsockets。
答案 1 :(得分:0)
不应该是
t.connect('ws://localhost:1883',100000);