@reino-doce/streaming-chat-webservice
v1.0.0
Published
Connector-agnostic runtime for streaming chat connectors.
Readme
@reino-doce/streaming-chat-webservice
Connector-agnostic runtime for normalized streaming chat events with optional Moblin-compatible WebSocket output.
What This Package Does
- Provides
createStreamingChatRuntime()for event normalization, reconnect handling, and WS fanout. - Provides
validateRuntimeConfig()for runtime config normalization/validation. - Does not bundle platform connectors.
You must register connector definitions in your host program.
Install
npm install @reino-doce/streaming-chat-webserviceProgrammatic Usage
const {
createStreamingChatRuntime,
validateRuntimeConfig,
} = require("@reino-doce/streaming-chat-webservice");
const mockConnector = {
id: "my-connector",
platform: "my-platform",
create() {
return {
async connect(_config, emit) {
emit({ type: "lifecycle", at: Date.now(), state: "connected", roomId: "room-1" });
},
async disconnect() {},
};
},
};
const runtime = createStreamingChatRuntime({ connectors: [mockConnector] });
const validation = validateRuntimeConfig(
{
connectorId: "my-connector",
connectorConfig: {},
connect: true,
reconnectOnDisconnect: true,
reconnectDelayMs: 5000,
reconnectDelayOfflineMs: 30000,
ws: {
enabled: false,
protocol: "moblin-xmpp",
host: "127.0.0.1",
port: 5443,
token: "",
},
giftToSyntheticChat: true,
},
{ connectors: [mockConnector] },
);
if (!validation.ok) {
throw new Error(validation.errors.join("; "));
}
runtime.start(validation.config);Runtime Config Defaults
{
"connectorId": "",
"connectorConfig": {},
"connect": false,
"reconnectOnDisconnect": true,
"reconnectDelayMs": 5000,
"reconnectDelayOfflineMs": 30000,
"ws": {
"enabled": false,
"protocol": "moblin-xmpp",
"host": "0.0.0.0",
"port": 5443,
"token": ""
},
"giftToSyntheticChat": true
}Validation Rules
reconnectDelayMsis clamped to1000..60000.reconnectDelayOfflineMsis clamped to1000..600000.ws.portis clamped to1024..65535.ws.protocolacceptsjson; everything else becomesmoblin-xmpp.- If
ws.enabled=true,ws.tokenis required. - If
connect=true,connectorIdis required. - If
connect=trueorconnectorIdis non-empty, the connector must be registered.
Exported API Surface
createStreamingChatRuntime(args?)validateRuntimeConfig(rawConfig, args?)
Type definitions are in index.d.ts.
Standalone CLI
Standalone executable support moved to:
@reino-doce/streaming-chat-webservice-cli
Install and run:
npm install @reino-doce/streaming-chat-webservice-cli
streaming-chat-webservice --helpThat package includes the built-in TikTok connector for standalone use.
