diff --git a/websockets-quickstart/src/main/java/org/acme/websockets/ChatSocket.java b/websockets-quickstart/src/main/java/org/acme/websockets/ChatSocket.java index d51c7a8af9..894c16e899 100644 --- a/websockets-quickstart/src/main/java/org/acme/websockets/ChatSocket.java +++ b/websockets-quickstart/src/main/java/org/acme/websockets/ChatSocket.java @@ -24,6 +24,7 @@ public class ChatSocket { @OnOpen public void onOpen(Session session, @PathParam("username") String username) { + broadcast("User " + username + " joined"); sessions.put(username, session); } @@ -42,11 +43,7 @@ public void onError(Session session, @PathParam("username") String username, Thr @OnMessage public void onMessage(String message, @PathParam("username") String username) { - if (message.equalsIgnoreCase("_ready_")) { - broadcast("User " + username + " joined"); - } else { - broadcast(">> " + username + ": " + message); - } + broadcast(">> " + username + ": " + message); } private void broadcast(String message) { diff --git a/websockets-quickstart/src/test/java/org/acme/websockets/ChatTest.java b/websockets-quickstart/src/test/java/org/acme/websockets/ChatTest.java index f7be6effb2..4cc155e7ef 100644 --- a/websockets-quickstart/src/test/java/org/acme/websockets/ChatTest.java +++ b/websockets-quickstart/src/test/java/org/acme/websockets/ChatTest.java @@ -1,20 +1,17 @@ package org.acme.websockets; -import java.net.URI; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.TimeUnit; - +import io.quarkus.test.common.http.TestHTTPResource; +import io.quarkus.test.junit.QuarkusTest; import jakarta.websocket.ClientEndpoint; import jakarta.websocket.ContainerProvider; import jakarta.websocket.OnMessage; -import jakarta.websocket.OnOpen; import jakarta.websocket.Session; - import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import io.quarkus.test.common.http.TestHTTPResource; -import io.quarkus.test.junit.QuarkusTest; +import java.net.URI; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.TimeUnit; @QuarkusTest public class ChatTest { @@ -24,27 +21,24 @@ public class ChatTest { @TestHTTPResource("/chat/stu") URI uri; + @TestHTTPResource("/chat/foo") + URI uriUserFoo; + @Test public void testWebsocketChat() throws Exception { try (Session session = ContainerProvider.getWebSocketContainer().connectToServer(Client.class, uri)) { - Assertions.assertEquals("CONNECT", MESSAGES.poll(10, TimeUnit.SECONDS)); - Assertions.assertEquals("User stu joined", MESSAGES.poll(10, TimeUnit.SECONDS)); session.getAsyncRemote().sendText("hello world"); Assertions.assertEquals(">> stu: hello world", MESSAGES.poll(10, TimeUnit.SECONDS)); + + // We need another user to connect, so we can see connect message + ContainerProvider.getWebSocketContainer().connectToServer(Client.class, uriUserFoo); + + Assertions.assertEquals("User foo joined", MESSAGES.poll(10, TimeUnit.SECONDS)); } } @ClientEndpoint public static class Client { - - @OnOpen - public void open(Session session) { - MESSAGES.add("CONNECT"); - // Send a message to indicate that we are ready, - // as the message handler may not be registered immediately after this callback. - session.getAsyncRemote().sendText("_ready_"); - } - @OnMessage void message(String msg) { MESSAGES.add(msg);