Socket.io客户端调试?

30

socket.io有没有客户端调试模式,可以让你看到服务器发送给你的所有内容?

现在你可以使用以下代码实现相同的效果:

socket.on('HELLO', function(arg1, arg2) { console.log('HELLO', arg1, arg2) ... 
socket.on('WORLD', function(arg1) { console.log('WORLD', arg1) ... 

如果我不需要到处添加console.log,那会非常方便。

6个回答

36

复制以下内容到控制台,按回车并刷新页面:

localStorage.debug = '*';

如果您只想获取套接字传入数据的调试信息,请使用以下代码:

localStorage.debug = 'socket.io-client:socket';

我已经通过在我的Web浏览器中输入此代码来启用日志记录,但现在我无法禁用它。每当我启动我的应用程序时,我也会看到我不再需要的套接字调试日志。如何删除/禁用这些套接字日志? 我正在React Native中使用套接字客户端。 - Ajay
2
只需通过 localStorage.removeItem('debug') 取消设置值,或打开您用于运行项目的某些工具并从本地存储中删除 debug,您也可以尝试 localStorage.debug = '' - Lukas Liesis
如果你在浏览器中使用JavaScript模块,似乎没有此选项,因为唯一的ESM版本是经过压缩的,不包含调试工具。 - Julian Knight

7
您可以轻松在Webkit浏览器的Web检查器(Chrome,Safari,Chromium)中看到它。 要做到这一点:
- 右键单击页面 - 进入检查元素 - 点击网络选项卡 - 在打开网络选项卡的情况下重新加载页面。 - 您可以看到所有通过HTTP GET请求加载的资源及其响应。 - 找到第一个请求到socket.io服务器的请求。 - 这将返回可用消息传输的列表。 - Socket.io客户端将选择第一个可用的传输方式(如果您的浏览器支持Websockets,则为Websockets)。 - 现在在第二个请求中,您将在“frames”选项卡中看到所有响应返回。
参考图像如下: Reference image for web inspector

3

3
文档并不太友好。如果您只想看到来自套接字的新数据行,请将调试标志设置为“socket.io-client:socket”。希望这可以作为筛选器示例(在文档中提到但没有示例)。 - Lukas Liesis

2
如果您正在使用Nodejs,请将以下代码放置在脚本的顶部:
process.env.DEBUG="*"

const io = require('socket.io-client')

...

操作系统的终端命令“set”并不总是有效。


1

如果您在命令提示符上,请输入以下2个命令:

set DEBUG=* node yoursocketioprogram.js

现在您将看到socket.io-client中所有debug()消息。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接