@@ -11,7 +11,7 @@ namespace HotChocolate.AspNetCore.Subscriptions
11
11
public class WebSocketConnection : ISocketConnection
12
12
{
13
13
private const string _protocol = "graphql-ws" ;
14
- private const int _maxMessageSize = 1024 * 4 ;
14
+ private const int _maxMessageSize = 512 ;
15
15
private WebSocket ? _webSocket ;
16
16
private bool _disposed ;
17
17
@@ -87,49 +87,35 @@ public async Task ReceiveAsync(
87
87
88
88
try
89
89
{
90
- WebSocketReceiveResult ? socketResult = null ;
90
+ ValueWebSocketReceiveResult socketResult ;
91
91
do
92
92
{
93
+ if ( webSocket . State != WebSocketState . Open )
94
+ {
95
+ break ;
96
+ }
97
+
93
98
Memory < byte > memory = writer . GetMemory ( _maxMessageSize ) ;
94
- var success = MemoryMarshal . TryGetArray ( memory , out ArraySegment < byte > buffer ) ;
99
+ socketResult = await webSocket . ReceiveAsync ( memory , cancellationToken ) ;
95
100
96
- if ( success )
101
+ if ( socketResult . Count == 0 )
97
102
{
98
- if ( webSocket . State != WebSocketState . Open )
99
- {
100
- break ;
101
- }
102
-
103
- try
104
- {
105
- socketResult = await webSocket . ReceiveAsync ( buffer , cancellationToken ) ;
106
- if ( socketResult . Count == 0 )
107
- {
108
- break ;
109
- }
110
-
111
- writer . Advance ( socketResult . Count ) ;
112
- }
113
- catch
114
- {
115
- break ;
116
- }
117
-
118
- FlushResult result = await writer . FlushAsync ( cancellationToken ) ;
119
- if ( result . IsCompleted )
120
- {
121
- break ;
122
- }
103
+ break ;
123
104
}
124
- } while ( socketResult == null || ! socketResult . EndOfMessage ) ;
125
- }
126
- catch ( ObjectDisposedException )
127
- {
128
- // we will just stop receiving
105
+
106
+ writer . Advance ( socketResult . Count ) ;
107
+
108
+ FlushResult result = await writer . FlushAsync ( cancellationToken ) ;
109
+
110
+ if ( result . IsCompleted )
111
+ {
112
+ break ;
113
+ }
114
+ } while ( ! socketResult . EndOfMessage ) ;
129
115
}
130
- catch ( WebSocketException )
116
+ catch
131
117
{
132
- // we will just stop receiving
118
+ // swallow exception, there's nothing we can reasonably do
133
119
}
134
120
}
135
121
0 commit comments