客户端未从服务器接收消息

时间:2018-02-07 22:17:53

标签: javascript node.js sockets socket.io

嗨,我有一个节点js服务器,我正在使用套接字进行通信。

索引:

<script src="socket.io/socket.io.js"></script>

客户端JS:

var socket = io.connect("http://localhost:8081");

socket.on('hi', function(data){
    console.log("g");
    console.log(data);
});

所以它似乎与服务器连接得很好。我有一个名为'hi'的套接字等待任何传入的消息。我添加了2个控制台日志,如果数据为空,它仍然会向控制台打印一些内容。

服务器:

var express = require("express");
var app = express();
var server = require("http").Server(app);
var io = require("socket.io")(server);
var mazeGenerator = require("generate-maze");

app.use(express.static("public"));

io.on("connection", function(socket) { // EDITED
    console.log("A player has connected - sending maze data...");
    socket.emit("hi", "hi");        
});

因此,当我刷新页面时,客户端连接并在我的CMD中,我看到“A player has connected ......”控制台日志。从那时起,它从服务器或客户端的空白,我可以保持刷新,并将继续说一个播放器已连接客户端控制台保持空白

1 个答案:

答案 0 :(得分:0)

由于证明连接已经建立,我怀疑这是一个发出数据的方法的问题。根据

,您的第二个参数hi可能不会被视为要传输的数据

https://socket.io/docs/server-api/#socket-emit-eventname-args-ack

根据我的理解,socket.io会发出Object代替String,您可以尝试一下吗?

io.on("connection", function(socket) {
    console.log("A player has connected - sending maze data...");
    socket.emit("hi", {data: "hi"});        
});