I';我无法连接到javascript mqtt服务器

I';我无法连接到javascript mqtt服务器,javascript,mqtt,Javascript,Mqtt,WebSocket错误:网络错误12031,与服务器的连接已重置 我想从UI订阅mqtt消息。我正在使用以下代码。我的机器上运行着mosquitto代理,所以我给了url作为我的IP,它正在监听端口号1883,我给了一些随机的客户端ID <!DOCTYPE html> <html lang="en"> <head></head> <body> <script src="../bower_comp

WebSocket错误:网络错误12031,与服务器的连接已重置

我想从UI订阅mqtt消息。我正在使用以下代码。我的机器上运行着mosquitto代理,所以我给了url作为我的IP,它正在监听端口号1883,我给了一些随机的客户端ID

<!DOCTYPE html>
<html lang="en">

    <head></head>

    <body>
        <script src="../bower_components/jquery/dist/jquery.min.js"></script>
        <script src="../bower_components/jquery/dist/jquery.js"></script>
        <script src="../paho.javascript-1.0.1/mqttws31-min.js"></script>
        <script src="../paho.javascript-1.0.1/mqttws31.js"></script>
        <script src="../js/browserMqtt.js"></script>
        <script>

        // Create a client instance
        client = new Paho.MQTT.Client("10.9.177.110", 1883, "100");

        // set callback handlers
        client.onConnectionLost = onConnectionLost;
        client.onMessageArrived = onMessageArrived;

        // connect the client
        client.connect({onSuccess:onConnect});

        // called when the client connects
        function onConnect() {
            console.log("onConnect");
            client.subscribe("/World");
            message = new Paho.MQTT.Message("Hello");
            message.destinationName = "/World";
            client.send(message); 
        }

        // called when the client loses its connection
        function onConnectionLost(responseObject) {
            if (responseObject.errorCode !== 0) {
                console.log("onConnectionLost:"+responseObject.errorMessage);
            }
        }

        // called when a message arrives
        function onMessageArrived(message) {
            console.log("onMessageArrived:"+message.payloadString);
        }
        </script>
    </body>
</html>

//创建一个客户端实例
客户=新Paho.MQTT.client(“10.9.177.110”,1883,“100”);
//设置回调处理程序
client.onConnectionLost=onConnectionLost;
client.onMessageArrived=onMessageArrived;
//连接客户端
connect({onSuccess:onConnect});
//当客户端连接时调用
函数onConnect(){
控制台日志(“onConnect”);
客户。认购(“/世界”);
message=new Paho.MQTT.message(“Hello”);
message.destinationName=“/World”;
客户端。发送(消息);
}
//当客户端失去连接时调用
函数onConnectionLost(响应对象){
if(responseObject.errorCode!==0){
日志(“onConnectionLost:+responseObject.errorMessage”);
}
}
//消息到达时调用
函数onMessageArrived(消息){
log(“onMessageArrived:+message.payloadString”);
}

能否确认您正在运行启用WebSockets的Mosquito版本?

您正在尝试连接到哪种类型的代理?除了IBM MessageSight设备之外,我不知道还有任何其他代理可以通过WebSocket为本机MQTT和MQTT共享同一端口

由于端口1883传统上用于本机MQTT,您是否记得通过WebSocket为MQTT添加新的侦听器

假设您使用的是MOSQUITO 1.4.x,那么您需要在配置文件中添加如下内容:

listerner 1884
protocol websockets

这将在端口1884上添加一个Websocket侦听器

如果我在主机前面加上tcs/ws/https/http,它会给出错误消息Websocket error:Network error 12005,URL无效,使用的是与我在JAVAIam使用MQTT v3.1 Brokern时使用的相同的mosquitto代理,而不是MQTT协议版本,而是mosquitto的实际发布版本。Websocket支持是在1.4流中添加的,需要在配置文件中启用,如上所述。我查找了mosquitto配置文件,并根据建议添加了以下#port 1884#protocol Websocket仍然是相同的问题启动带有#的行是一个注释,因此不会做任何事情。您需要添加我在上面建议的部分,您能告诉我如何检查代理是否支持WebSocket吗运行“mosquitto--version”将打印版本V3.1是代理版本在mosquitto配置文件中进行建议的更改,现在得到以下错误WebSocket错误:网络错误12029,无法建立与服务器的连接