standalone-toolbar-service
Version:
独立的Stagewise工具栏服务 - 支持SRPC通信和WebSocket广播,可与MCP反馈收集器集成
54 lines (53 loc) • 1.88 kB
TypeScript
import type { Server } from 'node:http';
export type WebSocketMessageType = 'request' | 'response' | 'update' | 'error';
export interface BaseWebSocketMessage {
id: string;
messageType: WebSocketMessageType;
method?: string;
}
export interface RequestMessage<T = any> extends BaseWebSocketMessage {
messageType: 'request';
method: string;
payload: T;
}
export interface ResponseMessage<T = any> extends BaseWebSocketMessage {
messageType: 'response';
method: string;
payload: T;
}
export interface UpdateMessage<T = any> extends BaseWebSocketMessage {
messageType: 'update';
method: string;
payload: T;
}
export interface ErrorMessage extends BaseWebSocketMessage {
messageType: 'error';
error: {
message: string;
code?: string;
};
}
export type WebSocketMessage<T = any> = RequestMessage<T> | ResponseMessage<T> | UpdateMessage<T> | ErrorMessage;
export type RpcMethodHandler<TRequest, TResponse, TUpdate> = (request: TRequest, sendUpdate: (update: TUpdate) => void) => Promise<TResponse>;
export interface RpcMethodDefinition<TRequest, TResponse, TUpdate> {
handler: RpcMethodHandler<TRequest, TResponse, TUpdate>;
}
export type RpcMethods = Record<string, RpcMethodDefinition<any, any, any>>;
export declare class SRPCWebSocketBridge {
private wss;
private connections;
private methods;
constructor(server: Server);
register<T extends Record<string, RpcMethodHandler<any, any, any>>>(methodHandlers: T): void;
private setupWebSocketHandlers;
private handleMessage;
private handleRequest;
private sendResponse;
private sendUpdate;
private sendError;
isConnected(): boolean;
getConnectionCount(): number;
getRegisteredMethods(): string[];
close(): void;
}
export declare function createSRPCBridge(server: Server): SRPCWebSocketBridge;