public void onApplicationEvent(SessionConnectEvent event) { MessageHeaders headers = event.getMessage().getHeaders(); Principal user = SimpMessageHeaderAccessor.getUser(headers); if (user == null) { logger.info(event.getSource() + " Connect user == null"); user = new Principal() { @Override public String getName() { return "test zhxy 1"; } }; } String id = SimpMessageHeaderAccessor.getSessionId(headers); // repository.save(new ActiveWebSocketUser(id, user.getName(), Calendar.getInstance())); messagingTemplate.convertAndSend("/topic/friends/signin", Arrays.asList(user.getName())); }
@Override public void onApplicationEvent(AbstractSubProtocolEvent event) { MessageHeaders headers = event.getMessage().getHeaders(); Principal user = SimpMessageHeaderAccessor.getUser(headers); if (event instanceof SessionConnectEvent) { String id = SimpMessageHeaderAccessor.getSessionId(headers); playerManager.addPlayer(id, user.getName()); messagingTemplate.convertAndSend( "/topic/player/join", PlayerEntry.create(user.getName(), PlayerEntry.State.ACTIVE)); } else if (event instanceof SessionDisconnectEvent) { SessionDisconnectEvent disconnectEvent = (SessionDisconnectEvent) event; playerManager.removePlayer(disconnectEvent.getSessionId()); messagingTemplate.convertAndSend( "/topic/player/leave", PlayerEntry.create(user.getName(), PlayerEntry.State.DETACHED)); } }