提交 71e76196 编写于 作者: R Rossen Stoyanchev

Polish StompProtocolHandler

上级 c54b6e9e
......@@ -94,37 +94,40 @@ public class StompProtocolHandler implements SubProtocolHandler {
public void handleMessageFromClient(WebSocketSession session, WebSocketMessage webSocketMessage,
MessageChannel outputChannel) {
Message<?> message;
try {
Assert.isInstanceOf(TextMessage.class, webSocketMessage);
String payload = ((TextMessage)webSocketMessage).getPayload();
Message<?> message = this.stompMessageConverter.toMessage(payload);
if (logger.isTraceEnabled()) {
logger.trace("Message " + message);
}
try {
StompHeaderAccessor headers = StompHeaderAccessor.wrap(message);
headers.setSessionId(session.getId());
headers.setUser(session.getPrincipal());
message = this.stompMessageConverter.toMessage(payload);
}
catch (Throwable error) {
logger.error("Failed to parse STOMP frame, WebSocket message payload: ", error);
sendErrorMessage(session, error);
return;
}
message = MessageBuilder.withPayloadAndHeaders(message.getPayload(), headers).build();
if (logger.isTraceEnabled()) {
logger.trace("Message " + message);
}
if (SimpMessageType.CONNECT.equals(headers.getMessageType())) {
handleConnect(session, message);
}
try {
StompHeaderAccessor headers = StompHeaderAccessor.wrap(message);
headers.setSessionId(session.getId());
headers.setUser(session.getPrincipal());
outputChannel.send(message);
message = MessageBuilder.withPayloadAndHeaders(message.getPayload(), headers).build();
if (SimpMessageType.CONNECT.equals(headers.getMessageType())) {
handleConnect(session, message);
}
catch (Throwable t) {
logger.error("Terminating STOMP session due to failure to send message: ", t);
sendErrorMessage(session, t);
}
outputChannel.send(message);
}
catch (Throwable error) {
sendErrorMessage(session, error);
catch (Throwable t) {
logger.error("Terminating STOMP session due to failure to send message: ", t);
sendErrorMessage(session, t);
}
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册