为什么我的客户端只在客户端页面刷新后才从node.js接收数据?

时间:2012-11-26 17:20:23

标签: node.js socket.io node-mysql

这很奇怪。这是我的日志的删节输出:

info  - socket.io started
debug - served static content /socket.io.js
debug - client authorized
info  - handshake authorized D7J-52pdfYAtijFhFxh7
debug - setting request GET /socket.io/1/websocket/D7J-52pdfYAtijFhFxh7
debug - set heartbeat interval for client D7J-52pdfYAtijFhFxh7
debug - client authorized for
debug - websocket writing 1::
establishing db connection.
Attaching new socket D7J-52pdfYAtijFhFxh7 to namespace /59a0747b-50b3-46c9-be7e-3d74fd513fcf for actID: 1.

debug - served static content /socket.io.js
debug - client authorized
info  - handshake authorized 6eUwG7fH-CG3vx3CFxh8
debug - setting request GET /socket.io/1/websocket/6eUwG7fH-CG3vx3CFxh8
debug - set heartbeat interval for client 6eUwG7fH-CG3vx3CFxh8
debug - client authorized for
debug - websocket writing 1::
establishing db connection.
debug - client authorized for /59a0747b-50b3-46c9-be7e-3d74fd513fcf
debug - websocket writing 1::/59a0747b-50b3-46c9-be7e-3d74fd513fcf
Attaching new socket 6eUwG7fH-CG3vx3CFxh8 to namespace /59a0747b-50b3-46c9-be7e-3d74fd513fcf for actID: 1.

第一个块是初始客户端连接,它将命名空间传递给socket.io,如下所示:http://server/59a0747b-50b3-46c9-be7e-3d74fd513fcf

请注意这两行是空白的:

debug - client authorized for
debug - websocket writing 1::

在我点击客户端网页上的刷新后,会出现第二个块(在同一个日志中)。相同的连接URL,但您会注意到

debug - client authorized for /59a0747b-50b3-46c9-be7e-3d74fd513fcf
debug - websocket writing 1::/59a0747b-50b3-46c9-be7e-3d74fd513fcf
正在显示必要的信息,以便节点将数据发送到命名空间的客户端。

修改 我不明白为什么我必须刷新客户端页面才能成功建立连接,尤其是当我调查io.namespaces['/59a0747b-50b3-46c9-be7e-3d74fd513fcf'].sockets对象时,会列出客户端的套接字。 在初始客户端连接之后,io对象中的任何位置都找不到命名空间。为什么?

可能或者可能不值得一提的是db查找是在客户端连接上发生的第一件事,我使用的是node-mysql,但是它连接到另一台远程服务器以获取该信息。

0 个答案:

没有答案