为我的蚊子经纪人打开Web套接字时出现问题。我正在使用js MQTT客户端库在浏览器和mosquitto代理之间打开Web套接字。在我的Web应用程序中,我具有用户身份验证。当我没有用户身份验证时,我的Web套接字可以正常工作,但是现在我只希望经过身份验证的用户能够看到一些数据。我的js代码如下:
console.log("clientId" + parseInt(Math.random() * 100))
client = new Paho.Client("my_ip", my_port, "clientId" + parseInt(Math.random() * 100));
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
client.connect({
userName: "mosquitto",
password: "moSquitto#52891",
onSuccess: onConnect
});
function onConnect() {
// Once a connection has been made, make a subscription and send a message.
console.log("onConnect");
client.subscribe("ExtDataCE");
client.subscribe("ExternDataTrain");
client.subscribe("InfoMarker");
}
function onConnectionLost(responseObject) {
if (responseObject.errorCode !== 0) {
console.log("onConnectionLost:" + responseObject.errorMessage + " ErrorCode = " + responseObject.errorCode);
}
}
function onMessageArrived(message) {
//whatever
}
我的控制器看起来像这样:
[Authorize]
public class HomeController : Controller
{
public async Task<IActionResult> Map()
{
return View("Map");
}
}
当我分开运行此代码时,它可以正常工作,但是当我通过用户身份验证运行此代码时,我的错误如下:
与'ws:// ipaddress:port / mqtt'的WebSocket连接失败:在收到握手响应之前连接已关闭
这是我的mosquitto.log文件
还有我的蚊子配置文件
任何人都知道如何使它工作?我认为这与尝试打开Web套接字的多个服务和/或多个用户有关。我尝试了铬和Firefox。 有什么帮助吗?谢谢