Javascript nodejs套接字io无法调用未定义的发出。原因?

Javascript nodejs套接字io无法调用未定义的发出。原因?,javascript,socket.io,node.js-client,Javascript,Socket.io,Node.js Client,我正在使用nodejs和socketio。代码的基本目的是从服务器请求数据并将其发布到客户端网站上 我做了这样的设置,每隔10秒,客户机向服务器请求数据,当收到数据时,数据就会显示在网站上 问题是,在大多数情况下,从服务器接收数据并将其发送到客户机是可行的,但偶尔,它会关闭并抛出一个错误,表示套接字方法emit未定义。我相信这意味着客户不再被定义 服务器代码: sockets[to].emit('cm0101', {soCase : '2', soData : ret } ); 这是获取Typ

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

我做了这样的设置,每隔10秒,客户机向服务器请求数据,当收到数据时,数据就会显示在网站上

问题是,在大多数情况下,从服务器接收数据并将其发送到客户机是可行的,但偶尔,它会关闭并抛出一个错误,表示套接字方法emit未定义。我相信这意味着客户不再被定义

服务器代码:

sockets[to].emit('cm0101', {soCase : '2', soData : ret } );
这是获取TypeError的代码:无法调用undefined的方法'emit'

我感到困惑的是,它10次工作9次,但偶尔会失败一次(可能是当客户出于任何原因关闭时。但没有客户关闭的原因/已确定的案例)


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

我想您以前没有检查
套接字[to]
。 您应该这样编写代码:


你应该发布更多的代码。什么是
sockets
?什么是到?这几乎无助于识别“此错误的所有可能原因”。
var socketTo = sockets[to];
if ( socketTo ) {
  sockets[to].emit('cm0101', {soCase : '2', soData : ret } );
}