首页>代码>spring boot整合WebSocket实现多人聊天室的实例>/spring-boot-websocket-chat-demo/src/main/java/com/example/websocketdemo/controller/WebSocketEventListener.java
package com.example.websocketdemo.controller; import com.example.websocketdemo.model.ChatMessage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.EventListener; import org.springframework.messaging.simp.SimpMessageSendingOperations; import org.springframework.messaging.simp.stomp.StompHeaderAccessor; import org.springframework.stereotype.Component; import org.springframework.web.socket.messaging.SessionConnectedEvent; import org.springframework.web.socket.messaging.SessionDisconnectEvent; /** * Created by rajeevkumarsingh on 25/07/17. */ @Component public class WebSocketEventListener { private static final Logger logger = LoggerFactory.getLogger(WebSocketEventListener.class); @Autowired private SimpMessageSendingOperations messagingTemplate; @EventListener public void handleWebSocketConnectListener(SessionConnectedEvent event) { logger.info("Received a new web socket connection"); } @EventListener public void handleWebSocketDisconnectListener(SessionDisconnectEvent event) { StompHeaderAccessor headerAccessor = StompHeaderAccessor.wrap(event.getMessage()); String username = (String) headerAccessor.getSessionAttributes().get("username"); if(username != null) { logger.info("User Disconnected : " + username); ChatMessage chatMessage = new ChatMessage(); chatMessage.setType(ChatMessage.MessageType.LEAVE); chatMessage.setSender(username); messagingTemplate.convertAndSend("/topic/public", chatMessage); } } }
最近下载更多
JiangYing009 LV8
4月23日
shuangfu LV24
2023年10月19日
ssh123 LV10
2023年8月29日
西瓜哥哥 LV4
2023年8月9日
yybb7435100 LV2
2023年8月7日
aaaabbbb LV1
2023年6月2日
dixiu000 LV4
2023年3月1日
笑得很美 LV11
2023年2月8日
312716 LV1
2022年12月19日
nanqindaxia LV2
2022年12月5日