Allow sending headers with the disconnect frame
This commit is contained in:
parent
b0b6423714
commit
08f1cb454a
|
|
@ -362,9 +362,17 @@ public class DefaultStompSession implements ConnectionHandlingStompSession {
|
|||
|
||||
@Override
|
||||
public void disconnect() {
|
||||
disconnect(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnect(@Nullable StompHeaders headers) {
|
||||
this.closing = true;
|
||||
try {
|
||||
StompHeaderAccessor accessor = createHeaderAccessor(StompCommand.DISCONNECT);
|
||||
if (headers != null) {
|
||||
accessor.addNativeHeaders(headers);
|
||||
}
|
||||
Message<byte[]> message = createMessage(accessor, EMPTY_PAYLOAD);
|
||||
execute(message);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,6 +116,12 @@ public interface StompSession {
|
|||
*/
|
||||
void disconnect();
|
||||
|
||||
/**
|
||||
* Disconnect the session by sending a DISCONNECT frame.
|
||||
* @param headers the headers for the disconnect message frame
|
||||
*/
|
||||
void disconnect(StompHeaders headers);
|
||||
|
||||
|
||||
/**
|
||||
* A handle to use to track receipts.
|
||||
|
|
|
|||
|
|
@ -659,4 +659,25 @@ public class DefaultStompSessionTests {
|
|||
verifyNoMoreInteractions(this.sessionHandler);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void disconnectWithHeaders() {
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
StompHeaders headers = new StompHeaders();
|
||||
headers.add("foo", "bar");
|
||||
|
||||
this.session.disconnect(headers);
|
||||
|
||||
Message<byte[]> message = this.messageCaptor.getValue();
|
||||
StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);
|
||||
headers = StompHeaders.readOnlyStompHeaders(accessor.getNativeHeaders());
|
||||
assertEquals(headers.toString(), 1, headers.size());
|
||||
assertEquals(headers.get("foo").size(), 1);
|
||||
assertEquals(headers.get("foo").get(0), "bar");
|
||||
|
||||
assertFalse(this.session.isConnected());
|
||||
verifyNoMoreInteractions(this.sessionHandler);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue