javascript - 如何捕获 socket.io 错误并防止它们出现在控制台中?

标签 javascript node.js error-handling socket.io

我在 node.js 上运行 socket.io,在 Apache 网站上运行 socket.io 客户端。如果我不启动 node.js 服务器并加载客户端页面,则会触发错误事件并显示一条空错误消息,这会导致以下控制台输出:

GET http://example.com:1337/socket.io/1/?t=1359731838906  socket.io.js:1659
Socket.handshake socket.io.js:1659
Socket.connect socket.io.js:1699
Socket socket.io.js:1551
io.connect socket.io.js:94
(anonymous function) general.js:7
(anonymous function)

我该怎么做才能阻止将此错误写入控制台?

最佳答案

你不能“捕获”这些错误,因为它们没有出现在控制台中,但你仍然可以通过监听 'connect_error', 'connect_failed''disconnect' ,然后直接处理它们或将它们重定向到自定义函数,如 handleErrors():

const socket = io.connect(url, { reconnection: false })
socket.on('update', data => console.log(data))

socket.on('connect_error', err => handleErrors(err))
socket.on('connect_failed', err => handleErrors(err))
socket.on('disconnect', err => handleErrors(err))

关于javascript - 如何捕获 socket.io 错误并防止它们出现在控制台中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14649590/

相关文章:

javascript - 基于路由器 url (Angular4) 将 header 绑定(bind)到文本

android - 安装 PhoneGap 3.x

python - 在 Python/Mechanize 中从 ECONNRESET 恢复

javascript - 在$ .ajax()调用之一中转义$ (“html”).ajaxError()

javascript - javascript 中 2 个数字相加不正确

javascript - 2 个有效的 AJAX 命令,但我只看到最后一个 "responseText"

javascript - 无法使用 HTTP Put 更新 MongoDB 集合内的对象?

node.js - 如何在 Meteor 本地安装 npm 包并对其进行更改?

sql-server-2008 - T-SQL : How does one handle an error in a print statement?

javascript - 什么是预渲染,它与服务器端渲染有何不同?