编程语言
首页 > 编程语言> > javascript-带有Angularjs的sockjs-错误:INVALID_STATE_ERR

javascript-带有Angularjs的sockjs-错误:INVALID_STATE_ERR

作者:互联网

我正在尝试将sockjs与Angularjs配合使用,以帮助您:https://github.com/bendrucker/angular-sockjs

我想在页面加载时通过sockjs发送一些数据,但是在尝试进行以下调用时,客户端出现错误:INVALID_STATE_ERR:

socket.send("test data");

我认为这是因为Sockjs尚未“就绪”.如果我将它包装在$timeout中,则在延迟足够大的情况下可以工作. 1000可以,但是100不能.

$timeout(function() {
  socket.send("test");
}, 1000);

显然这是一个hack,我想知道如何才能检测到sockjs准备就绪,以便随后进行呼叫.

解决方法:

您应该使用setHandler方法并为“打开”提供回调.在那发送消息会很安全.该服务非常轻巧,实际上仅用于确保在摘要循环内调用三个SockJS客户端回调(onopen,onclose,onmessage).如果需要,您可以轻松地使用它来构建更复杂的服务,其中包括:

>在套接字关闭时将已发送的消息排队,并在套接字打开时将其发送
>返回套接字打开时解析的$q承诺

标签:angularjs,sockets,sockjs,javascript
来源: https://codeday.me/bug/20191121/2050478.html