Improve SSE endpoint sessionId parameter handling
Add dynamic query parameter separator for sessionId to handle endpoints with existing query parameters more robustly
This commit is contained in:
parent
66e1508162
commit
dad9eafe3e
1 changed files with 10 additions and 1 deletions
|
|
@ -49,8 +49,17 @@ export class SSEServerTransport implements Transport {
|
|||
});
|
||||
|
||||
// Send the endpoint event
|
||||
/**
|
||||
* Determine the appropriate separator for adding the sessionId parameter.
|
||||
* Uses '&' if the endpoint already contains a query parameter (has a '?'),
|
||||
* otherwise uses '?' to start the query string.
|
||||
*
|
||||
* Note: This approach works for standard endpoints but doesn't handle
|
||||
* the edge case where '?' might be part of the path itself.
|
||||
*/
|
||||
const separator = this._endpoint.includes('?') ? '&' : '?';
|
||||
this.res.write(
|
||||
`event: endpoint\ndata: ${encodeURI(this._endpoint)}?sessionId=${this._sessionId}\n\n`,
|
||||
`event: endpoint\ndata: ${encodeURI(this._endpoint)}${separator}sessionId=${this._sessionId}\n\n`,
|
||||
);
|
||||
|
||||
this._sseResponse = this.res;
|
||||
|
|
|
|||
Loading…
Reference in a new issue