gpt4 book ai didi

node.js - Socket.io 发出回调不在服务器端触发?

转载 作者:搜寻专家 更新时间:2023-11-01 00:26:08 24 4
gpt4 key购买 nike

我的服务器正确地发出事件,但发出回调永远不会起作用。在下面,我的控制台上没有记录任何内容:

服务器:

io.sockets.emit('delete hint', {id: id}, function(data){
console.log('callback');
});

客户:

socket.on('delete hint', function(data){
// display a message before deleting
$('#' + data.id).fadeOut(function(){
$(this).remove();
});
});

我还尝试将客户端代码作为 function(data, fn) 以防回调需要包含在接收函数中。

我正在使用 Windows,当 socket.io 发出事件时,我的命令提示符显示如下:

websocket writing 5:::{"name":"delete hint", "args":[{"id":"1"}, null]}

我不知道问题出在哪里,我做错了什么?

最佳答案

当接收方计算机调用它时,在发送方计算机上执行回调

看看这段代码:

服务器:

io.sockets.on('connection', connectionFunc);

function connectionFunc (socket) {
socket.emit('delete hint', "data for client", callThis);
}

//this function is executed when client calls it
function callThis (dataFromClient){

console.log("Call back fired: " + dataFromClient);
}

客户:

    socket.on('delete hint', function(data, callback) {

console.log("i received: "+ data);
// call back will fire only when u the next line runs
callback("the callThis function on server will run");

});

你可以用相反的方式来做。

关于node.js - Socket.io 发出回调不在服务器端触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15603006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com