UNPKG

@colyseus/core

Version:

Multiplayer Framework for Node.js.

30 lines (29 loc) 898 B
// packages/core/src/matchmaker/Lobby.ts import * as matchMaker from "../MatchMaker.mjs"; var LOBBY_CHANNEL = "$lobby"; function updateLobby(room, removed = false) { const listing = room.listing; if (listing.unlisted) return; if (removed) { matchMaker.presence.publish(LOBBY_CHANNEL, `${listing.roomId},1`); } else if (!listing.private) { matchMaker.presence.publish(LOBBY_CHANNEL, `${listing.roomId},0`); } } async function subscribeLobby(callback) { const cb = async (message) => { const [roomId, isRemove] = message.split(","); if (isRemove === "1") { callback(roomId, null); } else { const room = (await matchMaker.query({ roomId }))[0]; callback(roomId, room); } }; await matchMaker.presence.subscribe(LOBBY_CHANNEL, cb); return () => matchMaker.presence.unsubscribe(LOBBY_CHANNEL, cb); } export { subscribeLobby, updateLobby };