node.js - Socket.io 连接被拒绝
问题描述
我目前正在使用 WebSockets 开发一个简单的游戏(第一次!)。但是,我的控制台充满了net::ERR_CONNECTION_REFUSED
错误,我什么也做不了。
几个小时以来,我一直在尝试修复这些错误,并在网上看到了一些其他类似问题的问题,但到目前为止,我没有任何效果。
这是我的代码:
server.js
:
const { createGameState, gameLoop } = require("./game")
const { FRAME_RATE } = require("./constants")
const io = require("socket.io")(httpServer, {
cors: {
origin: "http://localhost:3000",
methods: ["GET", "POST"]
}
});
io.on("connection", client => {
const state = createGameState()
startGameInterval(client, state)
});
function startGameInterval(client, state) {
const intervalId = setInterval(() => {
const winner = gameLoop(state);
console.log("interval");
if(!winner) {
client.emit("gameOver");
clearInterval(intervalId);
} else {
client.emit("gameover");
clearInterval(intervalId);
}
}, 1000 / FRAME_RATE); // 1000
}
io.listen(3000);
index.js
(顶部):
const backgroundColor = "#1c1315";
const snakeColor = "#7d7778";
const foodColor = "#f55872";
const socket = io("http://localhost:3000")
socket.on("init", handleInit());
// socket.on("gamestate", handleGameState());
const gameScreen = document.getElementById("gameScreen");
let canvas, ctx;
const gameState = {
player: {
pos: {
x: 3,
y: 10,
},
vel: {
x: 1,
y: 0,
},
snake: [
{x: 1, y: 10},
{x: 2, y: 10},
{x: 3, y: 10},
]
},
food: {
x: 7,
y: 7,
},
gridsize: 20,
};
这是我得到的错误;它每 5 秒左右在控制台中打印一次。
polling-xhr.js:206 GET http://localhost:3000/socket.io/?EIO=4&transport=polling&t=NW6GI07 net::ERR_CONNECTION_REFUSED
一般来说,我对 socket.io/websockets 很陌生,所以我不知道这个错误是什么意思,也不知道我能做些什么来解决这个问题。任何帮助将不胜感激!
解决方案
推荐阅读
- apache-spark - PySpark UDF 返回 [Ljava.lang.Object;@]
- python - 如果用户输入 scoreEarned 90 和 scoreShift 输出 20 仍将是 100,则需要找到一个不允许用户输入超过 100 的方程
- apache-flink - JSON 解码 Base64 数据流 Apache Flink
- python - 拖放在 Selenium python 上不起作用
- javascript - 如何在对象中的对象上使用 find() 方法
- javascript - 使用正则表达式 js vanilla 替换文本
- rxjs - Rxjs 在源发出值后将发出的值缓冲指定时间
- php - 来自 codeigniter 配置的 Grep db_name
- python - 如何将输出转换为单行
- c - 转换为 char* 的 int 变量如何打印字符串?