0

这个疑问其实源于我对 websockets 的一个疑问…… socket.io 和 websockets 的区别

我在想为什么像 google Chrome's/firebug/fiddler 这样的网络检查员在使用 websockets/channel-api 等推送技术时无法跟踪消息,(或者有没有办法做到这一点?)这是因为我们正在从 http 升级我们的连接?

4

3 回答 3

1

WebSockets 没有使用 HTTP 请求。当您在 JS 中创建 WebSocket 时,浏览器会创建与服务器的 TCP Socket 连接,并且此连接被处理为基于流的(因为 TCP),当浏览器接收到足够的单个消息数据时,它会使用传递解帧数据的 onmessage 事件通知 WebSocket 对象。

从技术上讲,实现对所有传入消息的自己的跟踪并将它们放在控制台中应该不难。但请注意,大多数可能使用 WebSockets 的复杂实时应用程序都有太多数据,这会极大地降低 Inspector 的速度,有时会在一秒钟内发送数百条消息。

恕我直言,主流浏览器何时实现具有高级过滤功能的 WebSockets 日志系统,这将允许仅显示必要的消息,这只是时间问题。

于 2012-04-12T20:09:42.767 回答
0

这篇文章的答案已经过时了。正如作者所说,这只是时间问题。Chrome 现在有相当好的 WebSocket 检查日志记录

http://blog.kaazing.com/2012/05/09/inspecting-websocket-traffic-with-chrome-developer-tools/

于 2015-04-10T22:38:49.280 回答
0

Fiddler确实跟踪 WebSocket 消息,但由于它们不是 HTTP,它们不会直接呈现在 Session 列表中。请参阅http://blogs.msdn.com/b/fiddler/archive/2011/11/22/fiddler-and-websockets.aspx

于 2012-04-18T13:37:32.847 回答