Skip to content

1681-engine / index / RoomHost

Class: RoomHost<D, B> ​

Defined in: src/net/RoomHost.ts:44

Runs a Room for connected sockets: a socket says hello and joins, its input goes to the room, the room steps at stepRate, and every player gets its own snapshot at snapRate (binary when it carries bodies). Pings are answered with the server's time. A player who keeps sending nonsense is disconnected.

ts
const host = new RoomHost(room);
wss.on('connection', (ws) => {
  const id = host.connect(ws);
  ws.on('message', (data, binary) => host.message(id, binary ? data : data.toString()));
  ws.on('close', () => host.disconnect(id));
});
host.start();

Type Parameters ​

Type ParameterDefault type
Dunknown
Bunknown

Constructors ​

Constructor ​

ts
new RoomHost<D, B>(room, options?): RoomHost<D, B>;

Defined in: src/net/RoomHost.ts:55

Parameters ​

ParameterType
roomRoom<D, B>
optionsRoomHostOptions<D>

Returns ​

RoomHost<D, B>

Properties ​

room ​

ts
readonly room: Room<D, B>;

Defined in: src/net/RoomHost.ts:56

Methods ​

connect() ​

ts
connect(socket): number;

Defined in: src/net/RoomHost.ts:65

A socket connected; returns the id its messages and its close are reported under.

Parameters ​

ParameterType
socketHostSocket

Returns ​

number


disconnect() ​

ts
disconnect(id): void;

Defined in: src/net/RoomHost.ts:114

Socket id closed.

Parameters ​

ParameterType
idnumber

Returns ​

void


message() ​

ts
message(id, data): void;

Defined in: src/net/RoomHost.ts:72

A message arrived from socket id (text as a string, binary as bytes).

Parameters ​

ParameterType
idnumber
datastring | ArrayBuffer | Uint8Array<ArrayBufferLike>

Returns ​

void


rewindTime() ​

ts
rewindTime(claimed): number;

Defined in: src/net/RoomHost.ts:169

The server time a client's claimed view time (InterpolationBuffer.viewTime, sent with a shot) is judged at: kept within the room's rewindMs of now, so no claim reaches further back. now with no history kept.

Parameters ​

ParameterType
claimedunknown

Returns ​

number


sendTo() ​

ts
sendTo(id, msg): void;

Defined in: src/net/RoomHost.ts:123

Sends one of the game's own messages to a player.

Parameters ​

ParameterType
idnumber
msg| ServerMessage | { [k: string]: unknown; t: string; }

Returns ​

void


start() ​

ts
start(): void;

Defined in: src/net/RoomHost.ts:131

Starts stepping on a timer. Steps are counted by the clock, so a late timer runs the steps it owes.

Returns ​

void


stepOnce() ​

ts
stepOnce(): void;

Defined in: src/net/RoomHost.ts:153

One step, and the snapshots when they are due. Exposed for tests and for servers that drive their own loop.

Returns ​

void


stop() ​

ts
stop(): void;

Defined in: src/net/RoomHost.ts:147

Returns ​

void

Released under the MIT License.