客户如何知道排放是否失败?socket.emit()有没有回调?

Hoh*_*oho 5 javascript node.js socket.io

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

我认为我的回调如下:

socket.emit("test",dataToSend,function(err){ });
Run Code Online (Sandbox Code Playgroud)

Muh*_*eda 0

您可以将服务器配置为侦听test事件并发回test succeeded事件。

socket.on("test", function(data) {
    socket.emit("test succeeded", data);
});
Run Code Online (Sandbox Code Playgroud)

这样你就可以监听成功接收的test事件,如下所示:

socket.on('test succeeded', function(data) {});
Run Code Online (Sandbox Code Playgroud)

更新

如果您想收到错误通知,请将您的函数作为第三个参数发送。

// client
socket.emit("test", dataToSend, function(err, success) {
});
Run Code Online (Sandbox Code Playgroud)

然后,在服务器上

socket.on("test", function(dataReceived, callback) {
});
Run Code Online (Sandbox Code Playgroud)

确认功能文档

  • 但如果发射失败怎么办?例如,当客户端向服务器发出消息时,服务器关闭,然后客户端将不会从服务器接收任何消息,因为服务器不工作。 (10认同)