Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js socket.io-。在客户端不工作_Node.js_Sockets_Websocket_Socket.io - Fatal编程技术网

Node.js socket.io-。在客户端不工作

Node.js socket.io-。在客户端不工作,node.js,sockets,websocket,socket.io,Node.js,Sockets,Websocket,Socket.io,我有一些使用socket.io的非常基本的代码 客户端 var socket = io(); // Do some stuff... socket.emit('hello', 'please like me'); // Wait for a response socket.on('hello back!', function(msg) { console.log('Yay, he replied:', msg); }); 服务器 var app = require('expres

我有一些使用socket.io的非常基本的代码

客户端

var socket = io();

// Do some stuff...

socket.emit('hello', 'please like me');

// Wait for a response
socket.on('hello back!', function(msg) {
    console.log('Yay, he replied:', msg);
});
服务器

var app = require('express');
var http = require('http').Server(app);
var io = require('socket.io')(http);

io.on('connection', function(socket) {
    console.log('a user connected');

    socket.on('disconnect', function() {
        console.log('user disconnected');
    });

    socket.on('hello', function() {
        // Code to decide wether or not I like the client
        // ...
        // I do like the client!
        socket.emit('hello back!', 'how are you');
        console.log('I said hello back!');
    });
});
希望你能了解情况。因此,理想情况下,这将发生:

  • 客户端连接
  • 过了一会儿,客户端发出
    hello
  • 服务器看到这一点,发出
    你好
  • 客户机注意到
    hello back事件
  • 大家都很开心 但不幸的是,我的情况并非如此。相反,步骤1-3非常有效。但当你达到第4步和第5步时,事情开始分崩离析。在
    hello back之后,客户端从不记录任何内容事件

    这不是我的全部代码,我想这会让你更容易理解它。很可能我在某个地方犯了一些愚蠢的错误,可能没有将其包含在代码中。但是如果我现在做的事情有什么根本性的错误,请告诉我


    干杯

    这个代码示例中没有任何明显的错误,因此它可能与您的真实代码中没有显示的内容有关。我建议将
    socket.on('hello back!',…)
    移动到
    socket.emit('hello',…)
    之前,这样您就可以确保在发送消息之前响应的侦听器已经就位,但这可能不是主要问题。@jfriend00可以,非常感谢您的回复。