Update client transports

This commit is contained in:
Justin Spahr-Summers 2024-10-11 16:13:12 +01:00
commit c39f8084d7
No known key found for this signature in database
GPG key ID: E78498BF3C053CA7

View file

@ -11,14 +11,19 @@ export class SSEClientTransport implements Transport {
private _eventSource?: EventSource;
private _endpoint?: URL;
private _abortController?: AbortController;
private _url: URL;
onclose?: () => void;
onerror?: (error: Error) => void;
onmessage?: (message: JSONRPCMessage) => void;
connect(url: URL): Promise<void> {
constructor(url: URL) {
this._url = url;
}
start(): Promise<void> {
return new Promise((resolve, reject) => {
this._eventSource = new EventSource(url.href);
this._eventSource = new EventSource(this._url.href);
this._abortController = new AbortController();
this._eventSource.onerror = (event) => {
@ -35,8 +40,8 @@ export class SSEClientTransport implements Transport {
const messageEvent = event as MessageEvent;
try {
this._endpoint = new URL(messageEvent.data, url);
if (this._endpoint.origin !== url.origin) {
this._endpoint = new URL(messageEvent.data, this._url);
if (this._endpoint.origin !== this._url.origin) {
throw new Error(
`Endpoint origin does not match connection origin: ${this._endpoint.origin}`,
);