握手后立即发送WebSocket消息



我正在node.js中构建一个WebSocket服务器。当客户端连接后,我想立即向它发送消息。

然而,当我在握手完成后发送它时,我在Chrome中收到一个错误:

Status line contains embedded null

当我在握手后100毫秒使用setTimeout发送消息时,它是有效的,但当使用这种技术使用10毫秒时,它又不起作用。

看起来握手和消息在一起发送时会被附加,以防它们之间的时间间隔很小(尽管我不确定,因为我不知道如何在Chrome中查看原始WebSocket流量——如果有人这样做,我也很乐意听到(。

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

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

我已经把它整理好了——我是在有连接的时候发送的,但这当然是在发送握手之前。所以我在做:

client connected
send message
receive handshake request
send handshake response
...

我只是通过在握手发送时触发库的connect事件来修改代码,也就是说,WebSocket连接真正建立时。

顺便说一句,我想提一下chrome://net-internals/是调试WebSocket连接时非常有用的页面(您可以很容易地看到请求/响应握手(。我早该知道。。。

相关内容

  • 没有找到相关文章

最新更新