我遇到了以下问题: 对于客户,我必须能够打开与不同websockets的websocket连接,具体取决于当前视图。 连接&消息处理没有问题&一切都按预期工作。 但是,我想实现一个在切换视图时关闭打开的websockets的函数,因此它们不会无缘无故地保持运行。 我通过以下代码执行此操作:
$scope.closeOpenWebsockets = function () {
var socketLength = $scope.openWebsockets.length;
while (socketLength--) {
console.log($scope.openWebsockets[socketLength]);
$scope.openWebsockets[socketLength].close(4999);
}
$scope.openWebsockets = [];
};
$scope.addOpenWebsocket = function (socket) {
$scope.openWebsockets.push(socket);
};
这确实有效,我唯一无法工作的是改变websocket的密码。 基于我在这里找到的列表: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
我尝试使用其中列出的各种代码,但似乎都没有。每次我自己调用.close()时,我得到的密码是1006.上面的例子是4999,一个通常可用于应用程序的密码。但是在尝试发送1000例时也没有用。
我需要这个的原因是因为连接也可以从另一侧关闭,&在这种情况下,我需要尝试重新连接。 (它始终是一个紧密的事件,而不是错误事件)。
我希望基于密切的代码执行此操作,但我想选择手动关闭时发送的代码,以便我确定我不会阻止我可能收到的任何其他密码(我只能进行有限的测试源系统&因此我不是100%确定我可能收到的所有可能的代码)
正如在代码中可见,我在AngularJS中这样做。
我在这里遗漏了什么吗?我查看了很多stackoverflow帖子/ websocket指南等等。但我没有找到任何东西。
编辑:这是我找到的指南之一: https://www.tutorialspoint.com/websockets/websockets_closing_connection.htm