@Override public boolean isOpen() { return this.delegate.isOpen(); }
@Override protected boolean isConnected() { return (this.webSocketSession != null && this.webSocketSession.isOpen()); }
@Override public boolean isActive() { return (this.webSocketSession != null && this.webSocketSession.isOpen() && !this.disconnected); }
boolean isWebSocketSessionOpen() { return pingTask != null && webSocketSession.isOpen(); } }
public static void tryCloseWithError(WebSocketSession session, Throwable exception, Log logger) { if (logger.isErrorEnabled()) { logger.error("Closing session due to exception for " + session, exception); } if (session.isOpen()) { try { session.close(CloseStatus.SERVER_ERROR); } catch (Throwable ex) { // ignore } } }
@Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { // WebSocketHandlerDecorator could close the session if (!session.isOpen()) { return; } this.stats.incrementSessionCount(session); session = decorateSession(session); this.sessions.put(session.getId(), new WebSocketSessionHolder(session)); findProtocolHandler(session).afterSessionStarted(session, this.clientInboundChannel); }
@Override protected boolean isConnected() { return ((ClientWebSocketContainer.this.clientSession != null) && (ClientWebSocketContainer.this.clientSession.isOpen())); }
@Override protected boolean isConnected() { return ((ClientWebSocketContainer.this.clientSession != null) && (ClientWebSocketContainer.this.clientSession.isOpen())); }
@Test @SuppressWarnings("unchecked") public void testWebSocketInboundChannelAdapter() throws Exception { WebSocketSession session = clientWebSocketContainer.getSession(null); assertNotNull(session); assertTrue(session.isOpen()); assertEquals("v10.stomp", session.getAcceptedProtocol()); Map<String, WebSocketSession> sessions = TestUtils.getPropertyValue(this.subProtocolWebSocketHandler, "sessions", Map.class); assertEquals(1, sessions.size()); String sessionId = sessions.keySet().iterator().next(); StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.MESSAGE); headers.setLeaveMutable(true); headers.setSessionId(sessionId); Message<byte[]> message = MessageBuilder.createMessage(ByteBuffer.allocate(0).array(), headers.getMessageHeaders()); this.clientOutboundChannel.send(message); Message<?> received = this.webSocketChannel.receive(10000); assertNotNull(received); StompHeaderAccessor receivedHeaders = StompHeaderAccessor.wrap(received); assertEquals(StompCommand.MESSAGE, receivedHeaders.getCommand()); Object receivedPayload = received.getPayload(); assertThat(receivedPayload, instanceOf(String.class)); assertEquals("", receivedPayload); }
public synchronized void disconnect() { if (webSocketSession != null && webSocketSession.isOpen()) { log.debug("Closing session"); try { webSocketSession.close(); } catch (IOException e) { log.warn("Error closing session: " + e); } } webSocketSession = null; }
/** * 发送消息给指定的用户 */ private void sendMessageToUser(WebSocketSession user, TextMessage message) { try { // 在线就发送 if (user.isOpen()) { user.sendMessage(message); } } catch (IOException e) { logger.error("发送消息给指定的用户出错", e); } } }
public static void tryCloseWithError(WebSocketSession session, Throwable exception, Log logger) { if (logger.isErrorEnabled()) { logger.error("Closing session due to exception for " + session, exception); } if (session.isOpen()) { try { session.close(CloseStatus.SERVER_ERROR); } catch (Throwable ex) { // ignore } } }
public void sendMessage(JsonObject json, WebSocketSession session) { if (!session.isOpen()) { return; } try { session.sendMessage(new TextMessage(json.toString())); } catch (IOException e) { logger.error("Exception while sending message", e); } }
@Override public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) { try { if(!frontend.isOpen()) { log.warn("Message to closed frontend, {}", this); closeCausedFront(); return; } frontend.sendMessage(message); } catch (Exception e) { log.error("In {}, can no send message to frontend due to: ", this, e); } }
private void sendJsonMessage(String jsonMessage) throws IOException { synchronized (wsSession) { if (wsSession.isOpen()) { wsSession.sendMessage(new TextMessage(jsonMessage)); } else { log.error("Trying to send a message to a closed session"); } } } }, wsSession.getId());
@Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { if (session.isOpen()) { session.close(); } sessions.remove(session); logger.info(String.format("Session %s closed because of %s", session.getId(), status.getReason())); }
@Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { // WebSocketHandlerDecorator could close the session if (!session.isOpen()) { return; } this.stats.incrementSessionCount(session); session = decorateSession(session); this.sessions.put(session.getId(), new WebSocketSessionHolder(session)); findProtocolHandler(session).afterSessionStarted(session, this.clientInboundChannel); }
@Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { // WebSocketHandlerDecorator could close the session if (!session.isOpen()) { return; } this.stats.incrementSessionCount(session); session = decorateSession(session); this.sessions.put(session.getId(), new WebSocketSessionHolder(session)); findProtocolHandler(session).afterSessionStarted(session, this.clientInboundChannel); }
public void build() { if (session==null) return; if (check(param)){ before(); result = start(); if (session.isOpen()) send("result="+result); }else{ send(errorMsg); } }