-
Notifications
You must be signed in to change notification settings - Fork 38.7k
Description
Pieter opened SPR-13989 and commented
M1 is a large message and M2 is a small message.
M2 is sent immediately after M1.
=> M2 is received before M1 although the messageId of M1 is smaller than the messageId of M2
I enabled tracing for 'org.springframework.web.socket':
clientOutboundChannel-90 processes M1
clientOutboundChannel-91 processes M2
10:43:01 [clientOutboundChannel-91] WebSocketServerSockJsSession - Cancelling heartbeat in session qdivbsu4
10:43:01 [clientOutboundChannel-91] WebSocketServerSockJsSession - Preparing to write SockJsFrame content='a["MESSAGE\ndestination:/user/queue/reply-1d07e5d5-91f1-4617-9f8e-477041972ad5\n...(truncated)'
10:43:01 [clientOutboundChannel-91] WebSocketServerSockJsSession - Writing SockJsFrame content='a["MESSAGE\ndestination:/user/queue/reply-1d07e5d5-91f1-4617-9f8e-477041972ad5\n...(truncated)'
10:43:01 [clientOutboundChannel-91] NativeWebSocketSession - Sending TextMessage payload=[a["MESSAGE..], byteCount=14989, last=true], JettyWebSocketSession[id=6baad94d, uri=ws://localhost:8080/weaver/ep/307/qdivbsu4/websocket]
10:43:01 [clientOutboundChannel-91] WebSocketServerSockJsSession - Scheduled heartbeat in session qdivbsu4
10:43:01 [clientOutboundChannel-90] WebSocketServerSockJsSession - Cancelling heartbeat in session qdivbsu4
10:43:01 [clientOutboundChannel-90] WebSocketServerSockJsSession - Preparing to write SockJsFrame content='a["MESSAGE\ndestination:/user/queue/reply-1d07e5d5-91f1-4617-9f8e-477041972ad5\n...(truncated)'
10:43:01 [clientOutboundChannel-90] WebSocketServerSockJsSession - Writing SockJsFrame content='a["MESSAGE\ndestination:/user/queue/reply-1d07e5d5-91f1-4617-9f8e-477041972ad5\n...(truncated)'
10:43:01 [clientOutboundChannel-90] NativeWebSocketSession - Sending TextMessage payload=[a["MESSAGE..], byteCount=4556671, last=true], JettyWebSocketSession[id=6baad94d, uri=ws://localhost:8080/weaver/ep/307/qdivbsu4/websocket]
10:43:01 [clientOutboundChannel-90] WebSocketServerSockJsSession - Scheduled heartbeat in session qdivbsu4
I suspect that because the conversion of the payload of the smaller message is so fast that it passes the conversion of the larger payload and hence is sent before the larger message.
Affects: 4.2.5
Issue Links:
- Preserve-publish-order is mentioned in documentation of 5.0.x [SPR-17106] #21643 Preserve-publish-order is mentioned in documentation of 5.0.x
1 votes, 5 watchers