0

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

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

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

服务器代码:

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

这是获取 TypeError 的代码:无法调用未定义的方法“发出”。

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

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

4

1 回答 1

0

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

var socketTo = sockets[to];
if ( socketTo ) {
  sockets[to].emit('cm0101', {soCase : '2', soData : ret } );
}
于 2013-11-16T09:01:02.870 回答