Skip to content

Commit 81b40e5

Browse files
committed
Add SSEServerTransport.handleMessage bypass
1 parent 929275e commit 81b40e5

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/server/sse.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,18 +88,28 @@ export class SSEServerTransport implements Transport {
8888
return;
8989
}
9090

91-
let message: JSONRPCMessage;
9291
try {
93-
message = JSON.parse(body);
92+
await this.handleMessage(JSON.parse(body));
93+
} catch (error) {
94+
res.writeHead(400).end(`Invalid message: ${body}`);
95+
return;
96+
}
97+
98+
res.writeHead(202).end("Accepted");
99+
}
100+
101+
/**
102+
* 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.
103+
*/
104+
async handleMessage(message: JSONRPCMessage): Promise<void> {
105+
try {
94106
validateMessage(message);
95107
} catch (error) {
96108
this.onerror?.(error as Error);
97-
res.writeHead(400).end(`Invalid message: ${body}`);
98109
return;
99110
}
100111

101112
this.onmessage?.(message);
102-
res.writeHead(202).end("Accepted");
103113
}
104114

105115
async close(): Promise<void> {

0 commit comments

Comments
 (0)