Compare commits

..

2 Commits

Author SHA1 Message Date
Neo 6d0d606b7a pong 2025-03-11 12:35:15 -04:00
Neo edf2ddb7ce add port env 2025-03-08 01:42:29 -05:00
2 changed files with 23 additions and 6 deletions

View File

@ -86,7 +86,7 @@ async function main() {
Global.wait("Starting Application") Global.wait("Starting Application")
app.listen(8080, () => { app.listen(process.env.PORT || 8080, () => {
Global.info("Application successfully started.") Global.info("Application successfully started.")
Global.info("Started on http://localhost:8080") Global.info("Started on http://localhost:8080")
}) })

View File

@ -39,15 +39,26 @@ export async function startGameServer(ws: WebSocket, req: Request) {
toServer.attach(toServerHandler) toServer.attach(toServerHandler)
}) })
handlers.set("ping", async (data, send) => {
send(serialize(createPacket("ping", {})))
})
ws.send(BSON.serialize(createPacket("cfg.gameSecrets", { ws.send(BSON.serialize(createPacket("cfg.gameSecrets", {
gameCode: myCode, gameCode: myCode,
}))) })))
ws.on("message", async (msg: Buffer) => { ws.on("message", async (msg: Buffer) => {
console.log(msg) console.log(msg)
const data = BSON.deserialize(new Uint8Array(msg.buffer)); const data = BSON.deserialize(new Uint8Array(msg.buffer))
handlePacket(handlers, data, (data) => {
ws.send(BSON.serialize(data))
})
if (messageChannel.length > 0) { if (messageChannel.length > 0) {
if (handlers.has(data.op)) {
return
}
console.log(`publishing to clients on ${messageChannel}: `, data); console.log(`publishing to clients on ${messageChannel}: `, data);
toClient.post({ toClient.post({
@ -55,10 +66,6 @@ export async function startGameServer(ws: WebSocket, req: Request) {
data: data data: data
}) })
} }
handlePacket(handlers, data, (data) => {
ws.send(BSON.serialize(data))
})
}) })
ws.on("close", () => { ws.on("close", () => {
@ -102,6 +109,9 @@ export async function joinGameInstance(ws: WebSocket, req: Request){
uuid = data.uuid uuid = data.uuid
console.log(uuid) console.log(uuid)
}) })
handlers.set("ping", async (data, send) => {
send(serialize(createPacket("ping", {})))
})
ws.on("message", async (msg: Buffer) => { ws.on("message", async (msg: Buffer) => {
// BSON: const data = BSON.deserialize(new Uint8Array(msg.buffer)) as Packet; // BSON: const data = BSON.deserialize(new Uint8Array(msg.buffer)) as Packet;
@ -109,6 +119,13 @@ export async function joinGameInstance(ws: WebSocket, req: Request){
try { try {
const data = BSON.deserialize(msg) as Packet const data = BSON.deserialize(msg) as Packet
data.conn = connectionId; data.conn = connectionId;
handlePacket(handlers, data, (data) => {
ws.send(BSON.serialize(data))
})
if (handlers.has(data.op ?? "")) {
return
}
toServer.post({ toServer.post({
channel: messageChannel, channel: messageChannel,