所以我想试试 socket.io 库,所有的例子都工作得很好(小写的发射)。但是当我尝试编写我的一点 ping->pong 时,它不会发出事件(我可以在 firefox 网络选项卡中查看消息日志)。
代码服务器(节点 JS):
const express = require("express");
const app = express();
const http = require("http").createServer(app);
const io = require("socket.io")(http);
const port = process.env.PORT || 9000;
app.use(express.static(__dirname + "/public"));
io.on("connection", (socket) => {
console.log("Socket connected");
socket.on("ping", () => {
console.log("PING");
socket.emit("pong", {});
});
});
http.listen(port, () => console.log("listening on port " + port));
浏览器中的代码:
var socket = io();
socket.on("pong", () => {
console.log("recieved PONG");
});
const ping = () => {
socket.emit("ping");
};
document.addEventListener("mousedown", ping, false);
奇怪的是,这似乎不起作用,打印了“Socket connected”,但套接字不发出任何东西。如果我从“ping”->“PING”和“pong”->“PONG”更改发射和开启,一切正常。我完全不明白为什么会这样以及为什么这些示例可以使用小写字母。