嗨,我有一个节点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 ......”控制台日志。从那时起,它从服务器或客户端的空白,我可以保持刷新,并将继续说一个播放器已连接客户端控制台保持空白
答案 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"});
});