This commit is contained in:
Neo 2025-03-11 12:35:15 -04:00
parent edf2ddb7ce
commit 6d0d606b7a

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,