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

时间:2015-02-24 15:50:57

标签: javascript node.js socket.io

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

我认为我的回调如下:

socket.emit("test",dataToSend,function(err){ });

2 个答案:

答案 0 :(得分:0)

您可以将服务器配置为侦听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

答案 1 :(得分:0)

在服务器上

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
}