提交 a109d6ad 编写于 作者: R Rossen Stoyanchev

Set heartbeat to 0,0 on CONNECT to message broker

上级 6eea4ad6
......@@ -292,10 +292,36 @@ public class StompBrokerRelayMessageHandler implements MessageHandler, SmartLife
try {
if ((destination == null) || supportsDestination(destination)) {
if (logger.isTraceEnabled()) {
logger.trace("Processing message: " + message);
}
handleInternal(message, messageType, sessionId);
if (SimpMessageType.CONNECT.equals(messageType)) {
headers.setHeartbeat(0, 0); // TODO: disable for now
message = MessageBuilder.withPayloadAndHeaders(message.getPayload(), headers).build();
RelaySession session = new RelaySession(sessionId);
this.relaySessions.put(sessionId, session);
session.open(message);
}
else if (SimpMessageType.DISCONNECT.equals(messageType)) {
RelaySession session = this.relaySessions.remove(sessionId);
if (session == null) {
if (logger.isTraceEnabled()) {
logger.trace("Session already removed, sessionId=" + sessionId);
}
return;
}
session.forward(message);
}
else {
RelaySession session = this.relaySessions.get(sessionId);
if (session == null) {
logger.warn("Session id=" + sessionId + " not found. Ignoring message: " + message);
return;
}
session.forward(message);
}
}
}
catch (Throwable t) {
......@@ -312,32 +338,6 @@ public class StompBrokerRelayMessageHandler implements MessageHandler, SmartLife
return false;
}
protected void handleInternal(Message<?> message, SimpMessageType messageType, String sessionId) {
if (SimpMessageType.CONNECT.equals(messageType)) {
RelaySession session = new RelaySession(sessionId);
this.relaySessions.put(sessionId, session);
session.open(message);
}
else if (SimpMessageType.DISCONNECT.equals(messageType)) {
RelaySession session = this.relaySessions.remove(sessionId);
if (session == null) {
if (logger.isTraceEnabled()) {
logger.trace("Session already removed, sessionId=" + sessionId);
}
return;
}
session.forward(message);
}
else {
RelaySession session = this.relaySessions.get(sessionId);
if (session == null) {
logger.warn("Session id=" + sessionId + " not found. Ignoring message: " + message);
return;
}
session.forward(message);
}
}
private class RelaySession {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册