跳到主要内容

DevToolsConnector

Defined in: connector.ts:131

RxDB DevTools 连接器。

当前协议只支持一个 RxDB 实例;同实例重复初始化是幂等操作。

Constructors​

Constructor​

new DevToolsConnector(options?): DevToolsConnector;

Defined in: connector.ts:201

Parameters​

ParameterTypeDescription
optionsDevToolsOptions连接器配置,缺省项见 DevToolsOptions 各成员的 @defaultValue

Returns​

DevToolsConnector

Throws​

RangeError 当 options.maxBufferSize 不是正安全整数时(由 EventBuffer 抛出)

Accessors​

capabilities​

Get Signature​

get capabilities(): DevToolsCapability;

Defined in: connector.ts:193

本页授予 DevTools 的命令能力档。

Remarks​

语义见 DevToolsCapability;握手时随 payload 一并告知 DevTools。

Returns​

DevToolsCapability


connected​

Get Signature​

get connected(): boolean;

Defined in: connector.ts:172

DevTools 是否已确认握手。

Remarks​

false 时事件进 buffer 而不是发到消息总线;收到 HANDSHAKE_ACK 后 buffer 会一次性冲出。disconnect 与 DISCONNECT 命令都会把它置回 false。

Returns​

boolean


enabled​

Get Signature​

get enabled(): boolean;

Defined in: connector.ts:183

连接器是否启用。

Remarks​

构造时由 DevToolsOptions.enabled 决定;opaque origin 下未显式开启 DevToolsOptions.allowOpaqueOrigin 时,init 会把它降为 false。

Returns​

boolean

Methods​

disconnect()​

disconnect(): void;

Defined in: connector.ts:259

断开 connector 通信并清理本地监听。

Returns​

void

Remarks​

不会调用 RxDB.disconnectAll() —— 那是 DISCONNECT_RXDB 命令的职责。 本方法只撤销 init 的副作用:发一条 DISCONNECT、摘掉 message 监听与 全部事件监听、取消在途查询订阅、删掉全局 helper、清空 buffer 并把 sequence 归零。 调用后可以再次 init(sequence 从 0 重新开始,属于新会话)。

DISCONNECT 在关端口之前发,且刻意走当前信道(还握着手就走私有端口)—— 先关端口的话这条告别消息会被丢进已关闭的信道,对端只能等超时。


init()​

init(rxdb, getEntityMetadata?): void;

Defined in: connector.ts:227

初始化连接器并注册唯一的 RxDB 实例。

Parameters​

ParameterTypeDescription
rxdbDevToolsRxDB要观测的 RxDB 实例;@aiao/rxdb 的 RxDB 可直接传入,无需断言
getEntityMetadata?GetEntityMetadataFn实体元数据读取函数(通常是 @aiao/rxdb 的 getEntityMetadata)。省略时连接器不知道任何实体,INSPECT_DB 回 null、 QUERY_ENTITY 回"实体不存在",且加密字段不会被遮罩(无从得知哪些字段是密文)

Returns​

void

Throws​

Error 当已注册了另一个 RxDB 实例时;同实例重复调用是幂等的

Throws​

由 getEntityMetadata 透传 —— 上游 getEntityMetadata 对未装饰的类 fail-fast

Remarks​

enabled === false、非浏览器环境(window === undefined)时直接返回, 不注册任何监听。opaque origin 且未开启 DevToolsOptions.allowOpaqueOrigin 时打一次 warning 并把连接器降为停用 —— 详见 DevToolsOptions.allowOpaqueOrigin。

副作用:注册 window 的 message 监听、订阅 RXDB_EVENT_TYPES 全部事件、 在 window.__AIAO_RXDB_DEVTOOLS__ 上挂断开 helper、并立刻发出一次握手。 全部由 disconnect 撤销。