我正在Heroku上上传我的NodeJS项目。这个项目是一个多人游戏,本地代码对我有效,两个玩家进入同一张Map。但是,在Heroku中,我不能让两个玩家进入同一张Map。
我留下NODEJS代码
const express = require("express")
const cors = require("cors")
const app = express()
app.use(express.static('public'))
app.use(cors())
app.use(express.json())
const jugadores = []
const PORT = process.env.PORT || 8080
class Jugador {
constructor(id) {
this.id = id
}
asignarMokepon(mokepon) {
this.mokepon = mokepon
}
actualizarPosicion(x, y) {
this.x = x
this.y = y
}
asignarAtaques(ataques) {
this.ataques = ataques
}
}
class Mokepon {
constructor(nombre) {
this.nombre = nombre
}
}
app.get("/unirse", (req, res) => {
const id = `${Math.random()}`
const jugador = new Jugador(id)
jugadores.push(jugador)
res.setHeader("Access-Control-Allow-Origin", "*")
res.send(id)
})
app.post("/mokepon/:jugadorId", (req, res) => {
const jugadorId = req.params.jugadorId || ""
const nombre = req.body.mokepon || ""
const mokepon = new Mokepon(nombre)
const jugadorIndex = jugadores.findIndex((jugador) => jugadorId === jugador.id)
if (jugadorIndex >= 0) {
jugadores[jugadorIndex].asignarMokepon(mokepon)
}
console.log(jugadores)
console.log(jugadorId)
res.end()
})
app.listen(PORT, () => {
console.log("Servidor funcionando", PORT)
})
我在这里留下了一小部分代码,因为不可能发布这么多代码。但是我在GitHub上留下了一个仓库链接
Heroku上托管的页面链接:GitHub上的https://proyecto-mokepon.herokuapp.com/代码链接:https://github.com/IamMatiasBazan/proyecto-mokepon
它在本地为每个玩家enter image description here生成随机数
在Heroku部署后,我看到:enter image description here
1条答案
按热度按时间cnjp1d6j1#
您发送的请求指向您的js文件中的localhost(多个位置,但这是一个)。在这里您应该考虑将其更改为heroku域或仅
/mokepon/${jugadorId}/ataques
(或其他)。它看起来也像是应用程序每50ms发送一个新的请求,即使什么都没有发生。在这种情况下,我建议你调查一下socket.io,以防止应用程序每次都发送无用的请求。