当前位置: 首页 > 知识库问答 >
问题:

socket.io发出回调不在服务器端触发?

冯胤
2023-03-14
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();
    });
});

我正在使用windows,当socket.io发出事件时,命令提示符显示以下内容:

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

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

共有1个答案

仲孙德惠
2023-03-14

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

看一下这段代码:

服务器:

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");            

    });
 类似资料:
  • 问题内容: 仅仅为了概念验证而使用socket.io,到目前为止,一切工作都很好,除了我无法在客户端实现我的emit回调。我必须在这里丢失一些愚蠢的东西,但是文档目前还不是杀手。服务器可以很好地拾取“ getSomeData”事件,并且在任何地方都没有错误。 根据我在客户端socket.io源代码中看到的信息,它检查发出的最后一个参数是否是一个函数,并始终将其用作回调,但是对任何更深层的调试对我来

  • 我正在创建我的产品,并与这个问题。有一天,我设置了Socket.io,一切都很好。第二天,我将服务器和客户端从http迁移到HTTPS。迁移后客户端和服务器端仍然连接,但不能从客户端发射到服务器,从服务器发射到客户端。 我的ssl证书位于和中,它们加载正确。运行在上的服务器 我的示例react组件。我的react应用程序运行在上。HTTPS连接良好,工作良好。 我该怎么办?也许我在中错误地使用了s

  • 多年后,我在使用socket io时遇到了一个奇怪的问题。几年前,我可以在客户端使用以下代码 现在,当我在客户端拥有相同的代码,并且发出“user”请求时,socket.on(“user”)回调会立即用请求有效负载触发,请求有效负载本应发送到服务器(脱机)。 我以为socket.on()监听器只由服务器的答复触发,而不是由客户端本身的传出消息触发。 socket.io应该这样工作吗?还是我在配置中

  • 问题内容: 我将慢速的WebSockets服务器包装在AngularJS服务中,然后从我的控制器调用该服务。如果我将回调链接到回调上,则一切正常,所有UI均异步更新。 当我尝试用来清理一团糟的回调时,似乎我的延迟请求从未被调用。我熟悉从Python的Twisted派生的概念,因此我认为从概念上讲一切都应该起作用-但事实并非如此。 这是我能想到的最短的例子,慢速的WebSockets服务器是使用se

  • 问题内容: 在MS SQL Server 2008 R2中,我们需要一个预插入和预更新触发器,该触发器可以检查某些内容并允许(或通过)回滚正在运行的插入/更新。 问题 :触发。是否真的需要显式地编写插入或更新?因为我们希望完成默认的插入或更新操作,所以仅执行“预检查”。 问题答案: 是的。 您确实需要编写显式或。 触发器运行DML操作。如果将触发器留为空白,则除了/表将在创建和填充中/之外,将不会

  • 当我提交表单时,我在浏览器控制台中看到“emit”消息,所以我知道表单提交事件正在触发,但我没有在服务器上收到测试消息。客户端或服务器端似乎什么也没发生,“socket.emit”函数似乎什么也没做。 我做错了什么?