Newer
Older
DTRAMServer / src / main / java / com / example / test / websocket / WebSocketHandler.java
@Sakoda2269 Sakoda2269 on 17 Sep 2024 1 KB first commit
package com.example.test.websocket;

import java.util.HashSet;
import java.util.Set;

import org.springframework.stereotype.Component;
import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;

import simulator.interfaces.html.IWebSocketMessageSender;


@Component
public class WebSocketHandler extends TextWebSocketHandler implements IWebSocketMessageSender{
	
	private Set<WebSocketSession> sessions = new HashSet<>();
	
	@Override
	public void afterConnectionEstablished(WebSocketSession session) throws Exception {
		sessions.add(session);
	}

	@Override
	public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
		sessions.remove(session);
	}
	
	public void sendMessageToAll(String message) throws Exception {
		for(var session : sessions) {
			if(session.isOpen()) {
				session.sendMessage(new TextMessage(message));
			}
		}
	}

	@Override
	public void send(String message) {
		try {
			sendMessageToAll(message);
		} catch (Exception e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
	}
	
}