跟踪来自网络检查员的服务器推送消息

Posted

技术标签:

【中文标题】跟踪来自网络检查员的服务器推送消息【英文标题】:Tracking server push messages from web inspectors 【发布时间】:2012-04-25 00:26:01 【问题描述】:

这个疑问其实源于我对 websockets 的一个疑问... Differences between socket.io and websockets

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

【问题讨论】:

Chrome 开发工具在网络选项卡下对此进行了本机调试。 【参考方案1】:

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

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

恕我直言,主流浏览器实现 WebSockets 日志记录系统以及允许显示必要消息的高级过滤是时间问题。

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于跟踪来自网络检查员的服务器推送消息的主要内容,如果未能解决你的问题,请参考以下文章

接收来自 emqx 推送消息的长时间运行服务

来自 MobileFirst 服务器的安全或加密推送通知消息

如何使用消息 ID 跟踪 FCM 推送通知是不是已交付

如何在 GCP Pub/sub 中修复来自推送订阅的多条消息

APNS Apple 推送通知服务未收到来自 Apple 的成功消息

如何在php后端及时推送消息给客户端