@ chanx-js/ 服务器
用于 JavaScript 和 TypeScript 的安全 WebSocket 服务器. 声明信件一次: 每个动作得到一个
经验证、打入的处理器、跨进程广播的组,以及整个API
记录为 AsyncAPI,从中 @chanx-js/codegen 生成
输入客户端.
在节点上运行 ws,快活,可亚,快活,霍诺,雀巢JS,邦和德诺.
文档 • 妇女 开始 • 妇女 为什么? • 妇女 API 密码
npm install @chanx-js/server ws zod
import { createServer } from 'node:http';
import { z } from 'zod';
import {
PingMessage,
PongMessage,
consumer,
createChanx,
defineMessage,
} from '@chanx-js/server';
import { asyncapiMiddleware, attachChanx } from '@chanx-js/server/node';
const Chat = defineMessage('chat', z.object({ text: z.string() }));
const Notice = defineMessage('notice', z.object({ text: z.string() }));
const chat = consumer('/ws/chat/{room}', {
name: 'chat',
groups: (conn) => [`room.${conn.params.room}`],
})
.on(PingMessage, { output: PongMessage }, () => PongMessage.create())
.on(Chat, { output: Notice }, (m, ctx) =>
ctx.broadcast(Notice.create({ text: m.payload.text })),
);
const chanx = createChanx({ consumers: [chat] });
const server = createServer(asyncapiMiddleware(chanx)); // docs at /asyncapi
attachChanx(server, chanx);
server.listen(8000);
- 处理器,如果/ else: 有效载荷由任何标准Schema库验证 (Zod, Valibot, ArkType) 在你的操作员运行之前.
- 团体和专题: 并让客户订阅许多流
一个插座。 跨进程
@chanx-js/layers。 。 。 . - 任何地方运行 : 节点的
http、快活、可亚、快活、Hono、Bun、Deno 网点JS。见 整合。 。 。 . - 测试 : 进程内客户端和广播抓取,来自
@chanx-js/server/testing。 。 。 . - 与 Python 兼容 香肠数字 : 不变 协议, 相同的 AsyncAPI, 一个Redis, 两者共享 .
麻省理工学院有执照.