Add SSEServerTransport.handleMessage bypass
This commit is contained in:
parent
929275eddf
commit
81b40e5608
1 changed files with 14 additions and 4 deletions
|
|
@ -88,20 +88,30 @@ export class SSEServerTransport implements Transport {
|
|||
return;
|
||||
}
|
||||
|
||||
let message: JSONRPCMessage;
|
||||
try {
|
||||
message = JSON.parse(body);
|
||||
validateMessage(message);
|
||||
await this.handleMessage(JSON.parse(body));
|
||||
} catch (error) {
|
||||
this.onerror?.(error as Error);
|
||||
res.writeHead(400).end(`Invalid message: ${body}`);
|
||||
return;
|
||||
}
|
||||
|
||||
this.onmessage?.(message);
|
||||
res.writeHead(202).end("Accepted");
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle a client message, regardless of how it arrived. This can be used to inform the server of messages that arrive via a means different than HTTP POST.
|
||||
*/
|
||||
async handleMessage(message: JSONRPCMessage): Promise<void> {
|
||||
try {
|
||||
validateMessage(message);
|
||||
} catch (error) {
|
||||
this.onerror?.(error as Error);
|
||||
return;
|
||||
}
|
||||
|
||||
this.onmessage?.(message);
|
||||
}
|
||||
|
||||
async close(): Promise<void> {
|
||||
this._sseResponse?.end();
|
||||
this._sseResponse = undefined;
|
||||
|
|
|
|||
Loading…
Reference in a new issue