客户端如何知道发射是否失败?socket.emit()有回调吗

How can a client know if the emit failed? Is there any callback for socket.emit()?

本文关键字:emit 回调 socket 何知道 发射 是否 失败 客户端      更新时间:2024-05-16

如果客户端向服务器发送一些消息,客户端有没有办法知道这个发送是否失败?

我认为这是一些回调,比如:

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
}