Update STOMP MESSAGE frames with messageId
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package org.springframework.web.messaging;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -85,7 +86,7 @@ public class PubSubHeaders {
|
||||
|
||||
this.messageHeaders = readOnly ? messageHeaders : new HashMap<String, Object>(messageHeaders);
|
||||
this.rawHeaders = this.messageHeaders.containsKey(RAW_HEADERS) ?
|
||||
(Map<String, String>) messageHeaders.get(RAW_HEADERS) : new HashMap<String, String>();
|
||||
(Map<String, String>) messageHeaders.get(RAW_HEADERS) : Collections.<String, String>emptyMap();
|
||||
|
||||
if (this.messageHeaders.get(MESSAGE_TYPE) == null) {
|
||||
this.messageHeaders.put(MESSAGE_TYPE, MessageType.MESSAGE);
|
||||
|
||||
@@ -75,7 +75,8 @@ public abstract class AbstractMessageService {
|
||||
logger.trace("Processing notification: " + message);
|
||||
}
|
||||
|
||||
MessageType messageType = (MessageType) message.getHeaders().get("messageType");
|
||||
PubSubHeaders headers = new PubSubHeaders(message.getHeaders(), true);
|
||||
MessageType messageType = headers.getMessageType();
|
||||
if (messageType == null || messageType.equals(MessageType.OTHER)) {
|
||||
processOther(message);
|
||||
}
|
||||
|
||||
@@ -224,6 +224,9 @@ public class StompHeaders extends PubSubHeaders {
|
||||
if (subscriptionId != null) {
|
||||
getRawHeaders().put(SUBSCRIPTION, subscriptionId);
|
||||
}
|
||||
if (StompCommand.MESSAGE.equals(getStompCommand()) && (getMessageId() == null)) {
|
||||
getRawHeaders().put(MESSAGE_ID, getMessageHeaders().get(ID).toString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user