讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在火狐浏览器中通过控制台查看WebSocket的实时传输数据?

老浩同学_5173

老浩同学_5173

发布时间:2026-06-20 14:28:19

|

586人浏览过

|

来源于php中文网

原创

必须通过 JavaScript 注入监听逻辑来捕获 WebSocket 原始数据:1. 打补丁劫持 prototype.send 和 onmessage;2. 重写 WebSocket 构造函数或用 defineProperty 监听 onmessage 设置;3. 直接访问全局挂载的实例并绑定事件。

如何在火狐浏览器中通过控制台查看websocket的实时传输数据?

要在火狐浏览器中直接通过控制台捕获 WebSocket 实时收发的原始数据,而不是依赖 Network 面板的帧列表,就必须绕过 UI 层、在 JavaScript 运行时注入监听逻辑——因为 Firefox 的 console 本身不自动打印 WebSocket 消息,必须由开发者主动 hook send() 和 onmessage。

给 WebSocket 实例打补丁,让每条消息都输出到控制台

这一步适用于你已知页面创建了 WebSocket 实例(比如全局变量 ws 或通过 const ws = new WebSocket(...) 定义),且能访问其引用。

第一步:在 Firefox 控制台(Ctrl+Shift+K)中粘贴并执行以下代码:

const originalSend = WebSocket.prototype.send;WebSocket.prototype.send = function(data) { console.log('[WS →]', data); return originalSend.apply(this, arguments); };WebSocket.prototype._originalOnMessage = WebSocket.prototype.onmessage;WebSocket.prototype.onmessage = function(event) { console.log('[WS ←]', event.data); if (this._originalOnMessage) this._originalOnMessage.call(this, event); };

这会劫持所有后续创建的 WebSocket 实例的 send 方法和 onmessage 回调,把发送和接收内容原样打印到控制台。注意:它不会影响已存在的、且 onmessage 已被赋值为函数字面量的实例(如 ws.onmessage = e => {...}),只对使用 onmessage 属性赋值或 addEventListener('message') 的实例生效。

第二步:刷新页面,触发 WebSocket 连接重建;或手动调用 ws.send(...)、等待服务端推送,即可在控制台看到带方向标识的实时日志。

监听全局 WebSocket 构造函数,捕获所有新建连接

当页面使用动态创建、变量名不固定、或封装在闭包里的 WebSocket(如某些 SDK 内部实例)时,靠 patch prototype 不够——必须拦截 new WebSocket() 调用本身。

方法一:重写 WebSocket 构造函数

在控制台执行:

const OriginalWebSocket = window.WebSocket;window.WebSocket = function(url, protocols) { const ws = new OriginalWebSocket(url, protocols); console.log('[WS new]', url); ws.addEventListener('open', () => console.log('[WS open]', url)); ws.addEventListener('message', e => console.log('[WS ←]', e.data)); ws.addEventListener('close', e => console.log('[WS close]', e.code, e.reason)); ws.addEventListener('error', e => console.log('[WS error]', e)); return ws;};

page-agent 浏览器控制(CDP)
page-agent 浏览器控制(CDP)

使用 page-agent CLI(CDP)控制浏览器;CLI只能通过 GitHub Release 的 .tgz 安装,npm 官方包暂未发布。

下载

⚠️ 注意:【此操作会覆盖页面原有 WebSocket 构造函数,若页面依赖 instanceof WebSocket 判断可能出错】。仅用于调试,切勿在生产环境运行。

方法二:用 Object.defineProperty 劫持原型链(更安全)

执行:

Object.defineProperty(WebSocket.prototype, 'onmessage', { set(fn) { console.log('[WS onmessage set]'); this.addEventListener('message', e => console.log('[WS ←]', e.data)); if (typeof fn === 'function') fn.call(this, e); } });

该方式不破坏构造过程,只监听 onmessage 属性赋值行为,兼容性更好,但无法捕获 addEventListener 注册的消息监听器。

从控制台直接读取当前活跃的 WebSocket 实例

如果页面将 WebSocket 实例挂载到全局(如 window.ws、window.socket、window.connection),可直接在控制台访问并绑定监听。

输入 window.ws?.addEventListener('message', e => console.log('[live WS ←]', e.data)) 并回车。

若返回 undefined,说明 window.ws 不存在或未定义;尝试 console.dir(window) 展开全局对象,搜索关键词 websocket、ws、socket 等属性名。

找到后,用 ws.onmessage = e => console.log(e.data) 覆盖原有回调,立即生效。

这一步操作起来很简单,直接把文件拖进去就行。

热门AI工具

更多
Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
Golang WebSocket与实时通信开发
Golang WebSocket与实时通信开发

本专题系统讲解 Golang 在 WebSocket 开发中的应用,涵盖 WebSocket 协议、连接管理、消息推送、心跳机制、群聊功能与广播系统的实现。通过构建实际的聊天应用或实时数据推送系统,帮助开发者掌握 如何使用 Golang 构建高效、可靠的实时通信系统,提高并发处理与系统的可扩展性。

175

2025.12.22

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

396

2026.01.19

Python WebSocket实时通信与异步服务开发实践
Python WebSocket实时通信与异步服务开发实践

本专题聚焦 Python 在实时通信场景中的开发实践,系统讲解 WebSocket 协议原理、长连接管理、消息推送机制以及异步服务架构设计。内容包括客户端与服务端通信实现、连接稳定性优化、消息队列集成及高并发处理策略。通过完整案例,帮助开发者构建高效稳定的实时通信系统,适用于聊天应用、实时数据推送等场景。

835

2026.03.18

WebSocket 前端开发与实战技巧
WebSocket 前端开发与实战技巧

聚焦 WebSocket 在前端项目中的工程化实践,涵盖原生 JavaScript WebSocket 连接的封装与状态管理、Vue 3 中 WebSocket 的 Composable 封装(useWebSocket)、React 中自定义 Hook 管理连接生命周期、心跳检测(Ping/Pong 定时器)与自动断线重连的实现策略、指数退避重连算法、消息序列化协议(JSON / Protobuf / MessagePack)的选型与性

428

2026.05.25

WebSocket发送和接收数据教程合集
WebSocket发送和接收数据教程合集

本专题整合了WebSocket发送与接收数据教程合集,阅读专题下面的文章了解更多详细内容。

321

2026.05.25

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

80

2026.10.10

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

40

2026.10.10

Kratos框架Protobuf接口定义与代码生成合集
Kratos框架Protobuf接口定义与代码生成合集

本专题讲解Kratos框架接口定义体系,涵盖proto编写规范、proto add/client/server生成命令、http注解路由、validate校验、OpenAPI文档生成、跨服务proto复用与兼容性设计。

20

2026.10.10

C++虚函数怎么定义和调用
C++虚函数怎么定义和调用

C++虚函数是实现运行时多态的重要机制。本专题从virtual关键字的基本用法入手,介绍基类与派生类之间的函数重写、基类指针调用派生类方法,以及动态绑定的执行过程,帮助初学者掌握虚函数的核心语法。

40

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebSocket手册
WebSocket手册

共0课时 | 0人学习

Webman中文手册
Webman中文手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn