【问题标题】:nodejs socket io cannot call emit of undefined. Causes?nodejs socket io 不能调用未定义的发射。原因?
【发布时间】:2013-11-16 06:56:56
【问题描述】:

我正在使用 nodejs 和套接字 io。代码的基本目的是向服务器请求数据并将其发布到客户端网站上。

我已经做到了,每 10 秒,客户端向服务器请求一次数据,当接收到数据时,它会显示在网站上。

问题在于,大多数时候,从服务器接收数据并将其发送到客户端可以正常工作,但有时它会关闭并抛出一个错误,指出套接字方法发出未定义。我相信这意味着不再定义客户端。

服务器代码:

sockets[to].emit('cm0101', {soCase : '2', soData : ret } );

这是得到 TypeError: cannot call method 'emit' of undefined 的代码。

我感到困惑的是,它工作了 9 次 10 次,但它偶尔会失败(大概是当客户端因任何原因关闭时。但没有原因/已确定客户端关闭的情况)

其他人有同样的问题吗?有谁知道为什么会这样?了解此错误的所有可能原因将有助于我尝试找出发生这种情况的原因。

【问题讨论】:

  • 您应该发布更多代码。 sockets 是什么? to 是什么?

标签: javascript socket.io node.js-client


【解决方案1】:

我假设您之前没有检查过sockets[to]。 你应该这样写你的代码:

var socketTo = sockets[to];
if ( socketTo ) {
  sockets[to].emit('cm0101', {soCase : '2', soData : ret } );
}

【讨论】:

  • 这几乎无助于识别“此错误的所有可能原因”。
猜你喜欢
  • 2016-01-29
  • 2014-09-14
  • 1970-01-01
  • 2018-03-19
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 2018-06-24
相关资源
最近更新 更多