下面列出了怎么用org.springframework.web.socket.PongMessage的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public final void sendMessage(WebSocketMessage<?> message) throws IOException {
checkNativeSessionInitialized();
if (logger.isTraceEnabled()) {
logger.trace("Sending " + message + ", " + this);
}
if (message instanceof TextMessage) {
sendTextMessage((TextMessage) message);
}
else if (message instanceof BinaryMessage) {
sendBinaryMessage((BinaryMessage) message);
}
else if (message instanceof PingMessage) {
sendPingMessage((PingMessage) message);
}
else if (message instanceof PongMessage) {
sendPongMessage((PongMessage) message);
}
else {
throw new IllegalStateException("Unexpected WebSocketMessage type: " + message);
}
}
@Override
public final void sendMessage(WebSocketMessage<?> message) throws IOException {
checkNativeSessionInitialized();
if (logger.isTraceEnabled()) {
logger.trace("Sending " + message + ", " + this);
}
if (message instanceof TextMessage) {
sendTextMessage((TextMessage) message);
}
else if (message instanceof BinaryMessage) {
sendBinaryMessage((BinaryMessage) message);
}
else if (message instanceof PingMessage) {
sendPingMessage((PingMessage) message);
}
else if (message instanceof PongMessage) {
sendPongMessage((PongMessage) message);
}
else {
throw new IllegalStateException("Unexpected WebSocketMessage type: " + message);
}
}
@Override
public final void sendMessage(WebSocketMessage<?> message) throws IOException {
checkNativeSessionInitialized();
Assert.isTrue(isOpen(), "Cannot send message after connection closed.");
if (logger.isTraceEnabled()) {
logger.trace("Sending " + message + ", " + this);
}
if (message instanceof TextMessage) {
sendTextMessage((TextMessage) message);
}
else if (message instanceof BinaryMessage) {
sendBinaryMessage((BinaryMessage) message);
}
else if (message instanceof PingMessage) {
sendPingMessage((PingMessage) message);
}
else if (message instanceof PongMessage) {
sendPongMessage((PongMessage) message);
}
else {
throw new IllegalStateException("Unexpected WebSocketMessage type: " + message);
}
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
if (message instanceof TextMessage) {
handleTextMessage(session, (TextMessage) message);
}
else if (message instanceof BinaryMessage) {
handleBinaryMessage(session, (BinaryMessage) message);
}
else if (message instanceof PongMessage) {
handlePongMessage(session, (PongMessage) message);
}
else {
throw new IllegalStateException("Unexpected WebSocket message type: " + message);
}
}
private void handlePongMessage(javax.websocket.Session session, ByteBuffer payload) {
PongMessage pongMessage = new PongMessage(payload);
try {
this.handler.handleMessage(this.wsSession, pongMessage);
}
catch (Throwable ex) {
ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger);
}
}
@OnWebSocketFrame
public void onWebSocketFrame(Frame frame) {
if (OpCode.PONG == frame.getOpCode()) {
ByteBuffer payload = frame.getPayload() != null ? frame.getPayload() : EMPTY_PAYLOAD;
PongMessage message = new PongMessage(payload);
try {
this.webSocketHandler.handleMessage(this.wsSession, message);
}
catch (Throwable ex) {
ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger);
}
}
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
if (message instanceof TextMessage) {
handleTextMessage(session, (TextMessage) message);
}
else if (message instanceof BinaryMessage) {
handleBinaryMessage(session, (BinaryMessage) message);
}
else if (message instanceof PongMessage) {
handlePongMessage(session, (PongMessage) message);
}
else {
throw new IllegalStateException("Unexpected WebSocket message type: " + message);
}
}
private void handlePongMessage(javax.websocket.Session session, ByteBuffer payload) {
PongMessage pongMessage = new PongMessage(payload);
try {
this.handler.handleMessage(this.wsSession, pongMessage);
}
catch (Throwable ex) {
ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger);
}
}
@OnWebSocketFrame
public void onWebSocketFrame(Frame frame) {
if (OpCode.PONG == frame.getOpCode()) {
ByteBuffer payload = frame.getPayload() != null ? frame.getPayload() : EMPTY_PAYLOAD;
PongMessage message = new PongMessage(payload);
try {
this.webSocketHandler.handleMessage(this.wsSession, message);
}
catch (Throwable ex) {
ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger);
}
}
}
@Override
protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception {
int nodeId = (int) session.getAttributes().get(RtConstant.KEY_NODE_ID);
if (session.getAttributes().get(WebSocketConstant.KEY_AUTHED) == null || !(boolean) session.getAttributes().get(WebSocketConstant.KEY_AUTHED)) {
logger.error("接收PONE消息,丢弃,会话尚未得到验证,节点ID:{},会话ID:{}", nodeId, session.getId());
return;
}
Long pingTimestamp = message.getPayload().asLongBuffer().get();
sessionIdPingStartTimeMap.remove(session.getId());
logger.info("收到PONG,节点ID:{},会话ID:{},延时{}ms", nodeId, session.getId(), System.currentTimeMillis() - pingTimestamp);
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
if (message instanceof TextMessage) {
handleTextMessage(session, (TextMessage) message);
}
else if (message instanceof BinaryMessage) {
handleBinaryMessage(session, (BinaryMessage) message);
}
else if (message instanceof PongMessage) {
handlePongMessage(session, (PongMessage) message);
}
else {
throw new IllegalStateException("Unexpected WebSocket message type: " + message);
}
}
private void handlePongMessage(javax.websocket.Session session, ByteBuffer payload) {
PongMessage pongMessage = new PongMessage(payload);
try {
this.handler.handleMessage(this.wsSession, pongMessage);
}
catch (Throwable ex) {
ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger);
}
}
@OnWebSocketFrame
public void onWebSocketFrame(Frame frame) {
if (OpCode.PONG == frame.getOpCode()) {
ByteBuffer payload = frame.getPayload() != null ? frame.getPayload() : EMPTY_PAYLOAD;
PongMessage message = new PongMessage(payload);
try {
this.webSocketHandler.handleMessage(this.wsSession, message);
}
catch (Throwable ex) {
ExceptionWebSocketHandlerDecorator.tryCloseWithError(this.wsSession, ex, logger);
}
}
}
@Override
protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception {
log.debug("Road: {}, stream: {}, sessionId: {} - Received Unsolicited Pong", roadName, streamName, sessionId);
}
protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception {
}
@Override
protected void sendPongMessage(PongMessage message) throws IOException {
getNativeSession().getBasicRemote().sendPong(message.getPayload());
}
@Override
protected void sendPongMessage(PongMessage message) throws IOException {
getRemoteEndpoint().sendPong(message.getPayload());
}
@Test
public void handleWebSocketMessagePong() throws Exception {
connect().handleMessage(this.webSocketSession, new PongMessage());
verifyNoMoreInteractions(this.stompSession);
}
@Override
protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception {
log.debug("handle pong message, {}", session.getId());
super.handlePongMessage(session, message);
}
@Override
protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception {
log.debug("handle pong message, {}", session.getId());
super.handlePongMessage(session, message);
}
protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception {
}
@Override
protected void sendPongMessage(PongMessage message) throws IOException {
getNativeSession().getBasicRemote().sendPong(message.getPayload());
}
@Override
protected void sendPongMessage(PongMessage message) throws IOException {
getRemoteEndpoint().sendPong(message.getPayload());
}
@Test
public void handleWebSocketMessagePong() throws Exception {
connect().handleMessage(this.webSocketSession, new PongMessage());
verifyNoMoreInteractions(this.stompSession);
}
@Override
protected void handlePongMessage(final WebSocketSession session, final PongMessage message) throws Exception {
}
protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception {
}
@Override
protected void sendPongMessage(PongMessage message) throws IOException {
getNativeSession().getBasicRemote().sendPong(message.getPayload());
}
@Override
protected void sendPongMessage(PongMessage message) throws IOException {
getNativeSession().getRemote().sendPong(message.getPayload());
}
@Test
public void handleWebSocketMessagePong() throws Exception {
connect().handleMessage(this.webSocketSession, new PongMessage());
verifyNoMoreInteractions(this.stompSession);
}
@Override
protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception {
logger.debug("Pong received for session {}", session.getId());
}