@flexent/protocomm-ws (英语)
用于服务的 WebSocket 处理器 @flexent/protocomm 协议.
使用量
扩展 WsProtocolHandler 提供协议指数加执行.
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 事件信封,并将接受的事件发送到当前连接.