sockjs with Angularjs - Error: INVALID_STATE_ERR

sockjs with Angularjs - Error: INVALID_STATE_ERR

本文关键字:INVALID STATE ERR Error with Angularjs sockjs      更新时间:2023-09-26

我正在尝试Angularjs和sockjs,我用它来帮助:https://github.com/bendrucker/angular-sockjs

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

socket.send("test data");

我想这是因为Sockjs还没有"准备好"。如果我把它封装在$timeout中,如果延迟足够大,它就会工作。1000有效,100无效。

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

这显然是一次黑客攻击,我想知道如何检测sockjs何时准备好,这样我就可以打电话了。

您应该使用setHandler方法并为'open'提供回调。在那里发信息是安全的。该服务非常轻,实际上只是为了确保在摘要周期内调用三个SockJS客户端回调(onopenoncloseonmessage)。如果你愿意,你可以很容易地使用它来构建一个更复杂的服务,在许多可能性中可以:

  • 套接字关闭时排队发送消息,打开时发送消息
  • 返回一个$q承诺,该承诺在套接字打开时解析