UNPKG

@colyseus/core

Version:

Multiplayer Framework for Node.js.

27 lines (26 loc) 894 B
// packages/core/src/discovery/index.ts var NODES_SET = "colyseus:nodes"; var DISCOVERY_CHANNEL = "colyseus:nodes:discovery"; async function getHostname() { return process.env.SELF_HOSTNAME; } async function getNodeAddress(node) { const host = await getHostname(); const port = process.env.SELF_PORT ?? node.port; return port ? `${node.processId}/${host}:${port}` : `${node.processId}/${host}`; } async function registerNode(presence, node) { const nodeAddress = await getNodeAddress(node); await presence.sadd(NODES_SET, nodeAddress); await presence.publish(DISCOVERY_CHANNEL, `add,${nodeAddress}`); } async function unregisterNode(presence, node) { const nodeAddress = await getNodeAddress(node); await presence.srem(NODES_SET, nodeAddress); await presence.publish(DISCOVERY_CHANNEL, `remove,${nodeAddress}`); } export { getHostname, registerNode, unregisterNode };