@rbxts/tether
Version:
A message-based networking solution for Roblox with automatic binary serialization and type validation
17 lines (16 loc) • 950 B
TypeScript
import type { BaseMessage } from "./structs";
import type { MessageEmitter } from "./emitters/message-emitter";
export type ServerQueuedMessageData<MessageData> = [keyof MessageData & BaseMessage, MessageData[keyof MessageData], boolean];
export type ClientQueuedMessageData<MessageData> = [Player | Player[], ...ServerQueuedMessageData<MessageData>];
export type QueuedMessageData<MessageData> = ClientQueuedMessageData<MessageData> | ServerQueuedMessageData<MessageData>;
export declare class Relayer<MessageData> {
private readonly emitter;
private serverQueue;
private clientBroadcastQueue;
private clientQueue;
constructor(emitter: MessageEmitter<MessageData>);
queueMessage<K extends keyof MessageData>(context: "client" | "server" | true, message: K & BaseMessage, data: QueuedMessageData<MessageData>): void;
/** Send all queued data across the network simultaneously */
relayAll(): void;
private relay;
}