gpt4 book ai didi

org.springframework.web.socket.WebSocketHandler.afterConnectionClosed()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-26 20:07:05 27 4
gpt4 key购买 nike

本文整理了Java中org.springframework.web.socket.WebSocketHandler.afterConnectionClosed()方法的一些代码示例,展示了WebSocketHandler.afterConnectionClosed()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WebSocketHandler.afterConnectionClosed()方法的具体详情如下:
包路径:org.springframework.web.socket.WebSocketHandler
类名称:WebSocketHandler
方法名:afterConnectionClosed

WebSocketHandler.afterConnectionClosed介绍

[英]Invoked after the WebSocket connection has been closed by either side, or after a transport error has occurred. Although the session may technically still be open, depending on the underlying implementation, sending messages at this point is discouraged and most likely will not succeed.
[中]在任意一方关闭WebSocket连接或发生传输错误后调用。尽管会话在技术上可能仍然是开放的,这取决于底层实现,但此时不鼓励发送消息,而且很可能不会成功。

代码示例

代码示例来源:origin: spring-projects/spring-framework

@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception {
  this.delegate.afterConnectionClosed(session, closeStatus);
}

代码示例来源:origin: spring-projects/spring-framework

@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) {
  try {
    getDelegate().afterConnectionClosed(session, closeStatus);
  }
  catch (Throwable ex) {
    if (logger.isWarnEnabled()) {
      logger.warn("Unhandled exception after connection closed for " + this, ex);
    }
  }
}

代码示例来源:origin: spring-projects/spring-framework

@OnWebSocketClose
public void onWebSocketClose(int statusCode, String reason) {
  CloseStatus closeStatus = new CloseStatus(statusCode, reason);
  try {
    this.webSocketHandler.afterConnectionClosed(this.wsSession, closeStatus);
  }
  catch (Throwable ex) {
    if (logger.isWarnEnabled()) {
      logger.warn("Unhandled exception after connection closed for " + this, ex);
    }
  }
}

代码示例来源:origin: spring-projects/spring-framework

@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception {
  try {
    getHandler(session).afterConnectionClosed(session, closeStatus);
  }
  finally {
    destroyHandler(session);
  }
}

代码示例来源:origin: spring-projects/spring-framework

@Override
public void onClose(javax.websocket.Session session, CloseReason reason) {
  CloseStatus closeStatus = new CloseStatus(reason.getCloseCode().getCode(), reason.getReasonPhrase());
  try {
    this.handler.afterConnectionClosed(this.wsSession, closeStatus);
  }
  catch (Throwable ex) {
    if (logger.isWarnEnabled()) {
      logger.warn("Unhandled on-close exception for " + this.wsSession, ex);
    }
  }
}

代码示例来源:origin: spring-projects/spring-framework

@Test
@SuppressWarnings({"rawtypes", "unchecked"})
public void cancelInactivityTasks() throws Exception {
  TcpConnection<byte[]> tcpConnection = getTcpConnection();
  ScheduledFuture future = mock(ScheduledFuture.class);
  when(this.taskScheduler.scheduleWithFixedDelay(any(), eq(1L))).thenReturn(future);
  tcpConnection.onReadInactivity(mock(Runnable.class), 2L);
  tcpConnection.onWriteInactivity(mock(Runnable.class), 2L);
  this.webSocketHandlerCaptor.getValue().afterConnectionClosed(this.webSocketSession, CloseStatus.NORMAL);
  verify(future, times(2)).cancel(true);
  verifyNoMoreInteractions(future);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void webSocketConnectionClosed() throws Exception {
  connect().afterConnectionClosed(this.webSocketSession, CloseStatus.NORMAL);
  verify(this.stompSession).afterConnectionClosed();
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void onClose() throws Throwable {
  this.adapter.onWebSocketClose(1000, "reason");
  verify(this.webSocketHandler).afterConnectionClosed(this.webSocketSession, CloseStatus.NORMAL.withReason("reason"));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void afterConnectionClosed() throws Exception {
  CloseStatus closeStatus = CloseStatus.NORMAL;
  willThrow(new IllegalStateException("error"))
    .given(this.delegate).afterConnectionClosed(this.session, closeStatus);
  this.decorator.afterConnectionClosed(this.session, closeStatus);
  assertNull(this.session.getCloseStatus());
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void onClose() throws Throwable {
  this.adapter.onClose(this.session, new CloseReason(CloseCodes.NORMAL_CLOSURE, "reason"));
  verify(this.webSocketHandler).afterConnectionClosed(this.webSocketSession, CloseStatus.NORMAL.withReason("reason"));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void closeWithWebSocketHandlerExceptions() throws Exception {
  willThrow(new Exception()).given(this.webSocketHandler).afterConnectionClosed(this.session, CloseStatus.NORMAL);
  this.session.delegateConnectionEstablished();
  this.session.setActive(true);
  this.session.close(CloseStatus.NORMAL);
  assertEquals(CloseStatus.NORMAL, this.session.getCloseStatus());
  assertClosed();
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void writeFrameIoException() throws Exception {
  this.session.setExceptionOnWrite(new IOException());
  this.session.delegateConnectionEstablished();
  try {
    this.session.writeFrame(SockJsFrame.openFrame());
    fail("expected exception");
  }
  catch (SockJsTransportFailureException ex) {
    assertEquals(CloseStatus.SERVER_ERROR, this.session.getCloseStatus());
    verify(this.webSocketHandler).afterConnectionClosed(this.session, CloseStatus.SERVER_ERROR);
  }
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void delegateConnectionClosed() throws Exception {
  this.session.delegateConnectionEstablished();
  this.session.delegateConnectionClosed(CloseStatus.GOING_AWAY);
  assertClosed();
  assertEquals(1, this.session.getNumberOfLastActiveTimeUpdates());
  verify(this.webSocketHandler).afterConnectionClosed(this.session, CloseStatus.GOING_AWAY);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void connectReceiveAndCloseWithPrelude() throws Exception {
  StringBuilder sb = new StringBuilder(2048);
  for (int i = 0; i < 2048; i++) {
    sb.append('h');
  }
  String body = sb.toString() + "\n" + "o\n" + "a[\"foo\"]\n" + "c[3000,\"Go away!\"]";
  ClientHttpResponse response = response(HttpStatus.OK, body);
  connect(response);
  verify(this.webSocketHandler).afterConnectionEstablished(any());
  verify(this.webSocketHandler).handleMessage(any(), eq(new TextMessage("foo")));
  verify(this.webSocketHandler).afterConnectionClosed(any(), eq(new CloseStatus(3000, "Go away!")));
  verifyNoMoreInteractions(this.webSocketHandler);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void afterTransportClosed() throws Exception {
  this.session.handleFrame(SockJsFrame.openFrame().getContent());
  this.session.afterTransportClosed(CloseStatus.SERVER_ERROR);
  assertThat(this.session.isOpen(), equalTo(false));
  verify(this.handler).afterConnectionEstablished(this.session);
  verify(this.handler).afterConnectionClosed(this.session, CloseStatus.SERVER_ERROR);
  verifyNoMoreInteractions(this.handler);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void close() throws Exception {
  this.session.delegateConnectionEstablished();
  assertOpen();
  this.session.setActive(true);
  this.session.close();
  assertEquals(1, this.session.getSockJsFramesWritten().size());
  assertEquals(SockJsFrame.closeFrameGoAway(), this.session.getSockJsFramesWritten().get(0));
  assertEquals(1, this.session.getNumberOfLastActiveTimeUpdates());
  assertTrue(this.session.didCancelHeartbeat());
  assertEquals(new CloseStatus(3000, "Go away!"), this.session.getCloseStatus());
  assertClosed();
  verify(this.webSocketHandler).afterConnectionClosed(this.session, new CloseStatus(3000, "Go away!"));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void responseClosedAfterDisconnected() throws Exception {
  String body = "o\n" + "c[3000,\"Go away!\"]\n" + "a[\"foo\"]\n";
  ClientHttpResponse response = response(HttpStatus.OK, body);
  connect(response);
  verify(this.webSocketHandler).afterConnectionEstablished(any());
  verify(this.webSocketHandler).afterConnectionClosed(any(), any());
  verifyNoMoreInteractions(this.webSocketHandler);
  verify(response).close();
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void errorResponseStatus() throws Exception {
  connect(response(HttpStatus.OK, "o\n"), response(HttpStatus.INTERNAL_SERVER_ERROR, "Oops"));
  verify(this.webSocketHandler).afterConnectionEstablished(any());
  verify(this.webSocketHandler).handleTransportError(any(), any());
  verify(this.webSocketHandler).afterConnectionClosed(any(), any());
  verifyNoMoreInteractions(this.webSocketHandler);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void connectReceiveAndClose() throws Exception {
  String body = "o\n" + "a[\"foo\"]\n" + "c[3000,\"Go away!\"]";
  ClientHttpResponse response = response(HttpStatus.OK, body);
  connect(response);
  verify(this.webSocketHandler).afterConnectionEstablished(any());
  verify(this.webSocketHandler).handleMessage(any(), eq(new TextMessage("foo")));
  verify(this.webSocketHandler).afterConnectionClosed(any(), eq(new CloseStatus(3000, "Go away!")));
  verifyNoMoreInteractions(this.webSocketHandler);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void connectReceiveAndCloseWithStompFrame() throws Exception {
  StompHeaderAccessor accessor = StompHeaderAccessor.create(StompCommand.SEND);
  accessor.setDestination("/destination");
  MessageHeaders headers = accessor.getMessageHeaders();
  Message<byte[]> message = MessageBuilder.createMessage("body".getBytes(StandardCharsets.UTF_8), headers);
  byte[] bytes = new StompEncoder().encode(message);
  TextMessage textMessage = new TextMessage(bytes);
  SockJsFrame frame = SockJsFrame.messageFrame(new Jackson2SockJsMessageCodec(), textMessage.getPayload());
  String body = "o\n" + frame.getContent() + "\n" + "c[3000,\"Go away!\"]";
  ClientHttpResponse response = response(HttpStatus.OK, body);
  connect(response);
  verify(this.webSocketHandler).afterConnectionEstablished(any());
  verify(this.webSocketHandler).handleMessage(any(), eq(textMessage));
  verify(this.webSocketHandler).afterConnectionClosed(any(), eq(new CloseStatus(3000, "Go away!")));
  verifyNoMoreInteractions(this.webSocketHandler);
}

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com