diff --git a/src/main/java/com/ntlab/irisserver/WebSocketConfig.java b/src/main/java/com/ntlab/irisserver/WebSocketConfig.java index b4ad29e..7376824 100644 --- a/src/main/java/com/ntlab/irisserver/WebSocketConfig.java +++ b/src/main/java/com/ntlab/irisserver/WebSocketConfig.java @@ -1,5 +1,5 @@ package com.ntlab.irisserver; -import com.ntlab.irisserver.resources.HelloWorldWebSocket; +import com.ntlab.irisserver.websockets.HelloWorldWebSocket; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.*; diff --git a/src/main/java/com/ntlab/irisserver/resources/HelloWorld.java b/src/main/java/com/ntlab/irisserver/resources/HelloWorld.java index d38541e..408aa78 100644 --- a/src/main/java/com/ntlab/irisserver/resources/HelloWorld.java +++ b/src/main/java/com/ntlab/irisserver/resources/HelloWorld.java @@ -12,7 +12,7 @@ public class HelloWorld { @GET public String getHello() { - return "WebSocketのデモの追加。12/11-10:54"; + return "WebSocketのデモの追加。12/11-11:13"; } } diff --git a/src/main/java/com/ntlab/irisserver/resources/HelloWorldWebSocket.java b/src/main/java/com/ntlab/irisserver/resources/HelloWorldWebSocket.java deleted file mode 100644 index 5aaa26f..0000000 --- a/src/main/java/com/ntlab/irisserver/resources/HelloWorldWebSocket.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.ntlab.irisserver.resources; - -import javax.websocket.*; -import javax.websocket.server.ServerEndpoint; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - - -// 5秒に1回HelloWorldを送るデモ -@ServerEndpoint("/hello-websocket") -public class HelloWorldWebSocket { - private static final Queue sessions = new ConcurrentLinkedQueue<>(); - - static { - ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor(); - service.scheduleWithFixedDelay(HelloWorldWebSocket::broadcast, 5, 5, TimeUnit.SECONDS); - } - - @OnMessage - public String onMessage(String message) { - System.out.println("WebSocketで受信したメッセージ/ " + message); - return "WebSocketでメッセージを正常に受信しました!"; - } - - @OnError - public void onError(Throwable th) { - System.out.println("WebSocketエラーが発生/ " + th.getMessage()); - } - - @OnOpen - public void onOpen(Session session) { - System.out.println("WebSocketセッション確立"); - sessions.add(session); - } - - @OnClose - public void onClose(Session session) { - System.out.println("WebSocketセッション終了"); - sessions.remove(session); - } - - public static void broadcast() { - Date now = new Date(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); - - sessions.forEach(session -> { - session.getAsyncRemote().sendText("HelloWorld! : " + formatter.format(now)); - }); - } - -} \ No newline at end of file diff --git a/src/main/java/com/ntlab/irisserver/websockets/HelloWorldWebSocket.java b/src/main/java/com/ntlab/irisserver/websockets/HelloWorldWebSocket.java new file mode 100644 index 0000000..ba643eb --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/websockets/HelloWorldWebSocket.java @@ -0,0 +1,56 @@ +package com.ntlab.irisserver.websockets; + +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + + +// 5秒に1回HelloWorldを送るデモ +@ServerEndpoint("/hello-websocket") +public class HelloWorldWebSocket { + private static final Queue sessions = new ConcurrentLinkedQueue<>(); + + static { + ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor(); + service.scheduleWithFixedDelay(HelloWorldWebSocket::broadcast, 5, 5, TimeUnit.SECONDS); + } + + @OnMessage + public String onMessage(String message) { + System.out.println("WebSocketで受信したメッセージ/ " + message); + return "WebSocketでメッセージを正常に受信しました!"; + } + + @OnError + public void onError(Throwable th) { + System.out.println("WebSocketエラーが発生/ " + th.getMessage()); + } + + @OnOpen + public void onOpen(Session session) { + System.out.println("WebSocketセッション確立"); + sessions.add(session); + } + + @OnClose + public void onClose(Session session) { + System.out.println("WebSocketセッション終了"); + sessions.remove(session); + } + + public static void broadcast() { + Date now = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + + sessions.forEach(session -> { + session.getAsyncRemote().sendText("HelloWorld! : " + formatter.format(now)); + }); + } + +} \ No newline at end of file