From 27b95566242d156348cfc9fec8bf170ccef3db77 Mon Sep 17 00:00:00 2001 From: bangnokia Date: Mon, 9 Jun 2025 18:32:35 +0700 Subject: [PATCH 1/3] check the the header X-Forwarded-Proto for scheme --- src/Transports/HttpServerTransport.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Transports/HttpServerTransport.php b/src/Transports/HttpServerTransport.php index 761aedf..0c3937a 100644 --- a/src/Transports/HttpServerTransport.php +++ b/src/Transports/HttpServerTransport.php @@ -184,7 +184,8 @@ private function handleSseRequest(ServerRequestInterface $request): Response } try { - $baseUri = $request->getUri()->withPath($this->messagePath)->withQuery('')->withFragment(''); + $scheme = $request->getHeaderLine('X-Forwarded-Proto') ?: $request->getUri()->getScheme(); + $baseUri = $request->getUri()->withScheme($scheme)->withPath($this->messagePath)->withQuery('')->withFragment(''); $postEndpointWithId = (string) $baseUri->withQuery("clientId={$clientId}"); $this->sendSseEvent($sseStream, 'endpoint', $postEndpointWithId, "init-{$clientId}"); From c50cc4e5135fcd681be964a494a65374cf5624c5 Mon Sep 17 00:00:00 2001 From: bangnokia Date: Thu, 12 Jun 2025 16:29:22 +0700 Subject: [PATCH 2/3] simplify return the path instead of full url --- src/Transports/HttpServerTransport.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Transports/HttpServerTransport.php b/src/Transports/HttpServerTransport.php index 0c3937a..2326d76 100644 --- a/src/Transports/HttpServerTransport.php +++ b/src/Transports/HttpServerTransport.php @@ -184,9 +184,7 @@ private function handleSseRequest(ServerRequestInterface $request): Response } try { - $scheme = $request->getHeaderLine('X-Forwarded-Proto') ?: $request->getUri()->getScheme(); - $baseUri = $request->getUri()->withScheme($scheme)->withPath($this->messagePath)->withQuery('')->withFragment(''); - $postEndpointWithId = (string) $baseUri->withQuery("clientId={$clientId}"); + $postEndpointWithId = $this->messagePath . "?clientId={$clientId}"; $this->sendSseEvent($sseStream, 'endpoint', $postEndpointWithId, "init-{$clientId}"); $this->emit('client_connected', [$clientId]); From 9120c9818fab097e6531502994d329a55d6f651c Mon Sep 17 00:00:00 2001 From: bangnokia Date: Thu, 12 Jun 2025 16:30:18 +0700 Subject: [PATCH 3/3] refactor: rename variable for clarity in SSE event handling --- src/Transports/HttpServerTransport.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Transports/HttpServerTransport.php b/src/Transports/HttpServerTransport.php index 2326d76..f15d54c 100644 --- a/src/Transports/HttpServerTransport.php +++ b/src/Transports/HttpServerTransport.php @@ -184,8 +184,8 @@ private function handleSseRequest(ServerRequestInterface $request): Response } try { - $postEndpointWithId = $this->messagePath . "?clientId={$clientId}"; - $this->sendSseEvent($sseStream, 'endpoint', $postEndpointWithId, "init-{$clientId}"); + $postEndpoint = $this->messagePath . "?clientId={$clientId}"; + $this->sendSseEvent($sseStream, 'endpoint', $postEndpoint, "init-{$clientId}"); $this->emit('client_connected', [$clientId]); } catch (Throwable $e) {