Socket.io 客户端调试?
Posted
技术标签:
【中文标题】Socket.io 客户端调试?【英文标题】:Socket.io client debugging? 【发布时间】:2012-01-31 17:20:55 【问题描述】:socket.io 是否有客户端调试模式,您可以在其中查看服务器发送给您的所有内容?
现在你用下面的代码实现了同样的效果:
socket.on('HELLO', function(arg1, arg2) console.log('HELLO', arg1, arg2) ...
socket.on('WORLD', function(arg1) console.log('WORLD', arg1) ...
如果我可以轻松地做到这一点而无需将 console.log 放在任何地方,那将非常方便。
【问题讨论】:
【参考方案1】:将此粘贴到控制台,单击进入并刷新您的页面:
localStorage.debug = '*';
要仅使用来自套接字的传入数据获取调试信息,请改为粘贴:
localStorage.debug = 'socket.io-client:socket';
【讨论】:
我已经通过在我的网络浏览器中输入此代码来启用日志,但现在我无法禁用它。每当我启动我的应用程序时,我也会看到不再需要的套接字调试日志。如何删除/禁用这些套接字日志?我在 React Native 中使用套接字客户端。 只需取消设置localStorage.removeItem('debug')
的值或打开一些用于运行项目的工具并从本地存储中删除debug
,您也可以尝试localStorage.debug = ''
【参考方案2】:
您可以在 webkit 浏览器的 web 检查器(chrome、safari、chromium)中轻松查看它 为此
右击页面 转到检查元素 点击网络标签 在网络标签打开的情况下重新加载页面。 您可以看到所有带有 http get 请求的资源及其响应正在加载。 找到对 socket.io 服务器的第一个请求。 这将返回可用消息传输的列表。 Socket.io 客户端将选择第一个可用的传输。 (如果您的浏览器支持 Websockets) 现在,在第二个请求中,您将在“框架”选项卡中看到返回的所有响应。【讨论】:
【参考方案3】:从 Socket.io 1.0 版开始,您可以将 localStorage 中的“debug”属性设置为“*”。然后您将获得所有客户端日志。您甚至可以过滤,因为它在后台使用https://github.com/visionmedia/debug。这一切都很好地记录在这里:http://socket.io/docs/logging-and-debugging/
【讨论】:
文档不是很好。如果您只想查看来自套接字的新数据行,请将调试标志设置为“socket.io-client:socket”。我希望这可以作为过滤器的示例有所帮助(在没有示例的文档中提到)。【参考方案4】:如果您在命令提示符下,请输入以下 2 个命令:
set DEBUG=*
node yoursocketioprogram.js
现在您将在 socket.io-client 中的 debug() 中看到所有消息
【讨论】:
【参考方案5】:如果您使用的是 Nodejs,请将此代码放在脚本顶部:
process.env.DEBUG="*"
const io = require('socket.io-client')
...
操作系统的终端“设置”并不总是有效。
【讨论】:
【参考方案6】:目前看来,如果不按照您的描述手动记录它们是不可能的。
我已经在Socket.io-client — GitHub 中发布了一个关于此的问题。 (https://github.com/LearnBoost/socket.io-client/issues/460)。
【讨论】:
以上是关于Socket.io 客户端调试?的主要内容,如果未能解决你的问题,请参考以下文章
即时通讯:服务端SpringBoot+Netty-Socket.io,客户端Socket.io.js+Java版Socket.io-client