如何发出错误以便可能在客户端的错误处理程序中捕获它?
How to emit error to be possible catch it on error handler on client-side?
我需要在我的连接处理程序中发出错误并在客户端捕获它,如下所示:
// 服务器端
var http = require('http');
var sio = require('socket.io');
var app = require('express')();
var server = require('http').createServer(app).listen(3000, function () {
console.log('Server listening on 3000 port');
});
var io = sio.listen(server);
io.on('connection', function (socket) {
// Do something and emit error...
socket.emit('error', new Error('Some error happened'));
});
//客户端
var socket = io.connect(window.location.origin);
socket.on('error', function () {
console.log('Never happens...');
});
但问题是 socket.emit('error', new Error('Some error happend'));
服务器端总是抛出错误并导致 nodejs 服务器崩溃 this issue
您能否帮助如何发出错误并在客户端正确处理?
服务器
socket.emit('my error', 'Some error happened');
客户
socket.on('my error', function (text) {
console.log(text);
});
不幸的是,error
是保留名称。
如果您需要在客户端捕获它,请使用其他事件名称通知客户端
// server
socket.on("error", function() {
socket.emit("my error", "Something bad happened!");
});
// client
socket.on('my error', function (text) {
console.log(text);
});
我需要在我的连接处理程序中发出错误并在客户端捕获它,如下所示:
// 服务器端
var http = require('http');
var sio = require('socket.io');
var app = require('express')();
var server = require('http').createServer(app).listen(3000, function () {
console.log('Server listening on 3000 port');
});
var io = sio.listen(server);
io.on('connection', function (socket) {
// Do something and emit error...
socket.emit('error', new Error('Some error happened'));
});
//客户端
var socket = io.connect(window.location.origin);
socket.on('error', function () {
console.log('Never happens...');
});
但问题是 socket.emit('error', new Error('Some error happend'));
服务器端总是抛出错误并导致 nodejs 服务器崩溃 this issue
您能否帮助如何发出错误并在客户端正确处理?
服务器
socket.emit('my error', 'Some error happened');
客户
socket.on('my error', function (text) {
console.log(text);
});
不幸的是,error
是保留名称。
如果您需要在客户端捕获它,请使用其他事件名称通知客户端
// server
socket.on("error", function() {
socket.emit("my error", "Something bad happened!");
});
// client
socket.on('my error', function (text) {
console.log(text);
});