我对这种情况中发生的事情感到困惑
客户端:
socket.emit('ferret', 'tobi', function (data) {
console.log(data); // data will be 'woot'
});
服务器
io.on('connection', function (socket) {
socket.on('ferret', function (name, fn) {
fn('woot');
});
});
这是来自文档。如何将函数传递给服务器以进行回调?服务器如何调用客户端功能?我很困惑。
答案 0 :(得分:2)
很明显,您无法直接从服务器调用客户端上的函数。
但你可以间接地轻松地做到这一点:
答案 1 :(得分:0)
emit方法的第三个参数接受一个将传递给服务器的回调,以便您可以使用您希望的任何数据进行确认。它实际上非常方便,节省了配对呼叫响应事件的工作量。
确认是获取与已发送消息相对应的响应的方法。以下是服务器端的代码片段。
io.sockets.on('connection', function(socket) {
socket.on('echo', function(data, callback) {
callback(data);
});
});