握手后立即发送WebSocket消息

pim*_*vdb 1 sockets client-server websocket node.js handshake

我正在WebSocketnode.js中构建一个服务器.当客户端已连接时,我想立即向其发送消息.

但是,当我在握手完成后发送它时,Chrome中出现错误:

Status line contains embedded null
Run Code Online (Sandbox Code Playgroud)

当我setTimeout在握手后100毫秒使用a 发送消息时,它可以工作,但是当使用这种技术使用10毫秒时,它再次无效.

看起来握手和消息在一起发送时会被附加,以防它们之间的时间间隔很小(虽然我不确定,因为我不知道如何查看WebSocketChrome中的原始流量 - 如果有人我喜欢也听到了).

我不想让服务器等待100毫秒,因为它对于客户端来说肯定是显而易见的,而且它看起来像一个肮脏的技巧而不是一个很好的解决方案.

如何在握手后立即发送消息?

pim*_*vdb 5

我已将它整理出来了 - 当有连接时我发送它,但这是在握手被发送之前.所以我在做:

client connected
send message
receive handshake request
send handshake response
...
Run Code Online (Sandbox Code Playgroud)

我刚刚connect在发送握手时触发了我的库的事件来改变我的代码,这是在WebSocket真正建立连接的时候.

作为旁注,我想提一下,调试WebSocket连接时,chrome:// net-internals /是一个非常有用的页面(您可以轻松查看请求/响应握手).我应该早点知道......