这个疑问其实源于我对 websockets 的一个疑问…… socket.io 和 websockets 的区别
我在想为什么像 google Chrome's/firebug/fiddler 这样的网络检查员在使用 websockets/channel-api 等推送技术时无法跟踪消息,(或者有没有办法做到这一点?)这是因为我们正在从 http 升级我们的连接?
这个疑问其实源于我对 websockets 的一个疑问…… socket.io 和 websockets 的区别
我在想为什么像 google Chrome's/firebug/fiddler 这样的网络检查员在使用 websockets/channel-api 等推送技术时无法跟踪消息,(或者有没有办法做到这一点?)这是因为我们正在从 http 升级我们的连接?
WebSockets 没有使用 HTTP 请求。当您在 JS 中创建 WebSocket 时,浏览器会创建与服务器的 TCP Socket 连接,并且此连接被处理为基于流的(因为 TCP),当浏览器接收到足够的单个消息数据时,它会使用传递解帧数据的 onmessage 事件通知 WebSocket 对象。
从技术上讲,实现对所有传入消息的自己的跟踪并将它们放在控制台中应该不难。但请注意,大多数可能使用 WebSockets 的复杂实时应用程序都有太多数据,这会极大地降低 Inspector 的速度,有时会在一秒钟内发送数百条消息。
恕我直言,主流浏览器何时实现具有高级过滤功能的 WebSockets 日志系统,这将允许仅显示必要的消息,这只是时间问题。
这篇文章的答案已经过时了。正如作者所说,这只是时间问题。Chrome 现在有相当好的 WebSocket 检查日志记录
http://blog.kaazing.com/2012/05/09/inspecting-websocket-traffic-with-chrome-developer-tools/
Fiddler确实跟踪 WebSocket 消息,但由于它们不是 HTTP,它们不会直接呈现在 Session 列表中。请参阅http://blogs.msdn.com/b/fiddler/archive/2011/11/22/fiddler-and-websockets.aspx