客户端如何知道发出是否失败? 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) {
});

Acknowledgement functions documentation

在服务器上

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
}