# @flexent/protocomm-ws 中文文档

规范地址：https://npmcn.com/package/%40flexent/protocomm-ws/

版本：2\.22\.1
npm 元数据更新时间：2026-11-13T14:16:09.868Z
中文译文更新时间：2026-11-14T22:53:09.632Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40flexent/protocomm-ws
原文对照：https://npmcn.com/package/%40flexent/protocomm-ws/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：8.4 kB，8 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：0 个
- peer 依赖：mesh-ioc ^4\.3\.1，nanoevent ^1\.0\.0，@flexent/logger ^2\.22\.1，@flexent/protocomm ^2\.22\.1，@flexent/http-server ^2\.22\.1
- 首次发布：2026-05-06T13:45:48.632Z
- 最新版本发布：2026-11-13T14:16:09.619Z
- 近 30 天下载量：2179（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：34（近 12 个月 34 个）

## 中文简介

用于原型comm RPC 协议的 WebSocket 处理器

## 安装

```sh
npm install @flexent/protocomm-ws
```

也可以使用：`pnpm add @flexent/protocomm-ws`、`yarn add @flexent/protocomm-ws`、`bun add @flexent/protocomm-ws`

## README

# @flexent/protocomm-ws (英语)

用于服务的 WebSocket 处理器 `@flexent/protocomm` 协议.

## 使用量

扩展 `WsProtocolHandler` 提供协议指数加执行.

```ts
import { type RpcEventEnvelope, type RpcEventSource } from '@flexent/protocomm';
import { WsProtocolHandler } from '@flexent/protocomm-ws';
import { dep } from 'mesh-ioc';

import { appProtocol, type AppProtocol } from './protocol.js';
import { AppProtocolEvents } from './AppProtocolEvents.js';
import { AppProtocolImpl } from './AppProtocolImpl.js';

interface ClientTarget {
    clientId?: string;
    channel?: string;
}

export class AppWsProtocolHandler extends WsProtocolHandler<AppProtocol, ClientTarget> {

    @dep() protected appProtocolImpl!: AppProtocolImpl;
    @dep() protected appProtocolEvents!: AppProtocolEvents;

    get protocol() {
        return appProtocol;
    }

    get protocolImpl() {
        return this.appProtocolImpl;
    }

    protected get eventSource(): RpcEventSource<ClientTarget> {
        return this.appProtocolEvents;
    }

    protected acceptsEvent(envelope: RpcEventEnvelope<ClientTarget>): boolean {
        return !envelope.target || envelope.target.clientId === this.getClientId();
    }

    protected getClientId(): string {
        return 'current-client-id';
    }

}
```

应用程序拥有客户身份,频道会员身份,以及多进程粉丝出道. 处理器只规范 RPC 事件信封,并将接受的事件发送到当前连接.

## 常见问题

### @flexent/protocomm-ws 是什么？

用于原型comm RPC 协议的 WebSocket 处理器

### 如何安装 @flexent/protocomm-ws？

在项目目录运行 npm install @flexent/protocomm-ws，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：mesh-ioc（^4\.3\.1）、nanoevent（^1\.0\.0）、@flexent/logger（^2\.22\.1）、@flexent/protocomm（^2\.22\.1）、@flexent/http-server（^2\.22\.1）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @flexent/protocomm-ws 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/flexent\_\_protocomm-ws 是否存在。

### @flexent/protocomm-ws 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @flexent/protocomm-ws 可以商用吗？

@flexent/protocomm-ws 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @flexent/protocomm-ws 的下载量有多少？

根据 npm 官方下载统计，@flexent/protocomm-ws 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,179 次，日均约 73 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @flexent/protocomm-ws 还在维护吗？

最新版本 2\.22\.1 发布于 2026/11/13（2 天前）；至今共发布 34 个版本，其中过去 12 个月发布了 34 个；首次发布于 2026/05/06。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

