From 2d03ccbe3ec67edd806792e1ca61e0bd585377c4 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 Date: Tue, 28 Jan 2025 21:21:44 +0100 Subject: [PATCH] =?UTF-8?q?Je=20savais=20qu'un=20client=20pouvais=20change?= =?UTF-8?q?r=20beaucoup=20de=20fois=20d'avis,=20je=20savais=20pas=20que=20?= =?UTF-8?q?c'=C3=A9tait=20aussi=20le=20cas=20du=20p*****=20de=20dev=20fron?= =?UTF-8?q?tend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dev/peerat/backend/routes/EventSSE.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/dev/peerat/backend/routes/EventSSE.java b/src/dev/peerat/backend/routes/EventSSE.java index cc32651..aa99f78 100644 --- a/src/dev/peerat/backend/routes/EventSSE.java +++ b/src/dev/peerat/backend/routes/EventSSE.java @@ -3,11 +3,13 @@ package dev.peerat.backend.routes; import java.util.regex.Matcher; import dev.peerat.framework.Context; +import dev.peerat.framework.HttpReader; import dev.peerat.framework.HttpWriter; import dev.peerat.framework.Injection; import dev.peerat.framework.Locker; import dev.peerat.framework.Locker.Key; import dev.peerat.framework.Route; +import dev.peerat.framework.utils.json.JsonMap; public class EventSSE{ @@ -17,10 +19,9 @@ public class EventSSE{ this.locker = locker; } - @Route(path = "^/group/event/([a-zA-Z0-9&|!?{}\\[\\]%/*\\-+=:;,_#@ ]{3,100})$") - public void connect(Matcher matcher, Context context, HttpWriter writer) throws Exception { - String group = matcher.group(1); - context.response(200, "Content-Type: text/event-stream"); + @Route(path = "^/group/event/$", websocket = true) + public void connect(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception { + String group = reader.readJson().get("group"); Key key = new Key(); @@ -29,7 +30,9 @@ public class EventSSE{ while(true){ GroupMessage message = locker.getValue(key); if(message.getGroup() == null || message.getGroup().equals(group)){ - writer.write("data: "+message.getMessage()+"\n\n"); + JsonMap send = new JsonMap(); + send.set("message", message.getMessage()); + writer.write(send.toString()+"\n"); writer.flush(); } locker.lock(key);