Je savais qu'un client pouvais changer beaucoup de fois d'avis, je savais pas que c'était aussi le cas du p***** de dev frontend
This commit is contained in:
parent
fbb8514afd
commit
2d03ccbe3e
1 changed files with 8 additions and 5 deletions
|
@ -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.<JsonMap>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);
|
||||
|
|
Loading…
Add table
Reference in a new issue