@ aslative/实时
服务器事件、 WebSocket 处理和命名频道管理
部分 基础 生态系统——一个基于信号的网络运行时间超过本土的HTML.
安装
npm install @basenative/realtime
快速启动 — SSE
import { createSSEServer, sseMiddleware } from '@basenative/realtime';
import { createPipeline } from '@basenative/middleware';
const sse = createSSEServer({ heartbeatInterval: 30_000 });
// Broadcast to all connected clients
sse.broadcast('update', { timestamp: Date.now() });
// SSE endpoint
const pipeline = createPipeline().use(sseMiddleware(sse));
快速启动 — 频道
import { createChannelManager } from '@basenative/realtime';
const channels = createChannelManager();
// Subscribe
const unsub = channels.subscribe('room:42', (event, data) => {
console.log(event, data);
});
// Publish
channels.publish('room:42', 'message', { text: 'Hello!' });
// Cleanup
unsub();
快速启动 — WebSockets
import { createWSHandler } from '@basenative/realtime';
const ws = createWSHandler({
onConnect(socket) { console.log('connected'); },
onMessage(socket, message) { socket.send(message); },
onClose(socket) { console.log('disconnected'); },
});
// Pass to your HTTP upgrade handler
server.on('upgrade', ws.handleUpgrade);
API 密码
createSSEServer(options?)
创建管理多个客户端连接的SSE服务器. 选项 : heartbeatInterval (ms,默认:3000).
回返情况:
addClient(res, options?)——将响应流注册为SSE客户端. 返回客户端ID.removeClient(id)——删除客户端连接.send(clientId, event, data?)——向特定客户端发送事件.broadcast(event, data?)——向所有连接客户端发送事件.clients——连接客户端对象地图.
sseMiddleware(sseServer, options?)
自动将收到的请求登记为SSE客户端的中端软件.
createChannelManager()
创建一个命名为 pub/ sub 频道管理器 .
subscribe(channel, handler)——订阅频道. 返回一个未订阅的函数 .publish(channel, event, data?)——向所有频道订阅者发布活动.unsubscribeAll(channel)——从频道中删除所有订阅者.
createWSHandler(options)
创建 WebSocket 连接处理器。 选项 : onConnect, (中文(简体) ), onMessage, (中文(简体) ), onClose, (中文(简体) ), onError。 。 。 .
handleUpgrade(req, socket, head)——Node.js HTTP升级事件处理器.
许可证
阿帕奇 - 2.0