@authup/core-realtime-kit (英语)
Authup 实时实体事件的 socket.io 客户端管理器和事件名帮助器 .
每个服务器一个管理器:每个命名空间一个插座,每个握手时发送的访问符.
安装 • 妇女 使用量 • 妇女 API 密码 • 妇女 文档
合适的话
当实体更改时, Authup 的服务器会通过 @authup/server-kit套接字处理器,它通过套接字发出。 io Redis 发射器,其名称如下: userCreated双方商定: buildEventFullName,用来构建这些名称,以及 ClientManager,浏览器客户端用于连接和收听. @authup/server-kit 财务报告和审定财务报表 @authup/client-web-kit 依赖它。 Authup 本身没有运行 socket.io 服务器: 事件到达 socket 。 iO 服务器您运行在同一 Redis 上。 只有在您自己建立这样的客户端时才直接安装此软件包 .
安装
npm install @authup/core-realtime-kit socket.io-client
socket.io-client (单位:千美元)^4.8.4)是一个对等依赖:您安装它。 仅限无害环境管理。 节点.js >=26.0.0,或浏览器捆绑器.
使用量
连接
import { ClientManager } from '@authup/core-realtime-kit';
const manager = new ClientManager({
url: 'https://realtime.example.com',
token: () => localStorage.getItem('access_token') ?? undefined,
});
const socket = await manager.connect('/');
connect(namespace)当套接字连接时解决,或与套接字拒绝connect_error。默认名称空间是/。 。 。 .token是字符串或同步或同步函数。 它被召来 每一个握手和发送auth.token; 投出函数不会发出任何符号.- 基本的 socket.io
Manager使用autoConnect: false; 在您拨打之前没有连接connect。 。 。 . - 一条路径
url变成 socket.iopath数字 :https://example.com/api连接到path: '/api/socket.io'。一个options.path附于该前缀.
倾听实体活动
import { EventNameSuffix, buildEventFullName } from '@authup/core-realtime-kit';
socket.emit(buildEventFullName('user', EventNameSuffix.SUBSCRIBE));
socket.on(buildEventFullName('user', EventNameSuffix.CREATED), (payload) => {
// payload.data is the created user, payload.meta.roomName the room it was sent to
});
buildEventFullName(entity, verb) 用资本化动词来拼接实体名称 : ('user', 'created') 实值 userCreated。 。 。 .
符号更改后重新连接
await manager.reconnectAll();
信使只在握手时被读取,所以一个套接字保持它与之相连的信使. reconnect(namespace) 财务报告和审定财务报表 reconnectAll() 断开并再次连接以发送当前 . disconnect(namespace) 关闭套接字并保存到以后; eject(namespace) 闭而忘之.
选项
new ClientManager(ctx)数字 :
| 选项 | 类型 | 默认 | 说明 |
|---|---|---|---|
url | string | 所需经费 | 服务器 URL; 它的路径成为套接字 。 io 路径前缀 |
token | string | () => string | undefined | Promise<string | undefined> | 发送为 auth.token 在每次握手时 | |
options | Partial<ManagerOptions> | 传递到 socket.io客户端 Manager |
API 密码
| 导出 | 仁爱 | 目的 |
|---|---|---|
ClientManager | 类 | 一个插座.io Manager,每个命名空间一个套接字 : connect, (中文(简体) ), disconnect, (中文(简体) ), reconnect, (中文(简体) ), reconnectAll, (中文(简体) ), inject, (中文(简体) ), eject, (中文(简体) ), options |
ClientManagerContext, (中文(简体) ), ClientManagerTokenFn | 类型 | 构造器输入和符号函数 |
buildEventFullName | 函数 | entity + 资本化 verb |
EventNameSuffix | 语句 | created, (中文(简体) ), updated, (中文(简体) ), deleted, (中文(简体) ), subscribe, (中文(简体) ), unsubscribe |
EventFullName, (中文(简体) ), EventPayload | 类型 | 事件名称模板和有效载荷形状 |
isEventTarget, (中文(简体) ), isEventCallback | 函数 | 套接字处理器参数的守护符 |
STCEvents, (中文(简体) ), CTSEvents, (中文(简体) ), STSEvents, (中文(简体) ), STCEventContext, (中文(简体) ), EventCallback, (中文(简体) ), DefaultEvents | 类型 | 输入套接字的事件映射类型 |
许可证
由 所制
现按 Apache 2.0 许可证。 。 。 .