客户端如何知道发出是否失败? socket.emit()有回调吗?
How can a client know if the emit failed? Is there any callback for socket.emit()?
如果客户端向服务器发送一些消息,客户端有没有办法知道发送是否失败?
我认为我会像这样的回调:
socket.emit("test",dataToSend,function(err){ });
您可以将服务器配置为侦听 test
事件,并发回 test succeeded
事件。
socket.on("test", function(data) {
socket.emit("test succeeded", data);
});
这样您就可以像这样监听成功接收到的 test
事件:
socket.on('test succeeded', function(data) {});
更新
如果您希望收到错误通知,请将您的函数作为第三个参数发送。
// client
socket.emit("test", dataToSend, function(err, success) {
});
然后,在服务器上
socket.on("test", function(dataReceived, callback) {
});
在服务器上
io.on('connect', (socket) => {
socket.on('join-room', ( user, handleError ) => {
//process data with user
let error = 'can not find user'
return handleError(error )
}
}
在客户端
socket.emit('join-room', user, error => {
console.log(error) //error from Server is here
}
如果客户端向服务器发送一些消息,客户端有没有办法知道发送是否失败?
我认为我会像这样的回调:
socket.emit("test",dataToSend,function(err){ });
您可以将服务器配置为侦听 test
事件,并发回 test succeeded
事件。
socket.on("test", function(data) {
socket.emit("test succeeded", data);
});
这样您就可以像这样监听成功接收到的 test
事件:
socket.on('test succeeded', function(data) {});
更新
如果您希望收到错误通知,请将您的函数作为第三个参数发送。
// client
socket.emit("test", dataToSend, function(err, success) {
});
然后,在服务器上
socket.on("test", function(dataReceived, callback) {
});
在服务器上
io.on('connect', (socket) => {
socket.on('join-room', ( user, handleError ) => {
//process data with user
let error = 'can not find user'
return handleError(error )
}
}
在客户端
socket.emit('join-room', user, error => {
console.log(error) //error from Server is here
}