@@ -51,9 +51,9 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF
51
51
private async Task Echo ( HttpContext context , WebSocket webSocket , ILogger logger )
52
52
{
53
53
var buffer = new byte [ 1024 * 4 ] ;
54
- var result = await webSocket . ReceiveAsync ( new ArraySegment < byte > ( buffer ) , CancellationToken . None ) ;
55
- LogFrame ( logger , result , buffer ) ;
56
- while ( ! result . CloseStatus . HasValue )
54
+ var result = await webSocket . ReceiveAsync ( buffer . AsMemory ( ) , CancellationToken . None ) ;
55
+ LogFrame ( logger , webSocket , result , buffer ) ;
56
+ while ( result . MessageType != WebSocketMessageType . Close )
57
57
{
58
58
// If the client send "ServerClose", then they want a server-originated close to occur
59
59
string content = "<<binary>>" ;
@@ -75,19 +75,19 @@ private async Task Echo(HttpContext context, WebSocket webSocket, ILogger logger
75
75
await webSocket . SendAsync ( new ArraySegment < byte > ( buffer , 0 , result . Count ) , result . MessageType , result . EndOfMessage , CancellationToken . None ) ;
76
76
logger . LogDebug ( $ "Sent Frame { result . MessageType } : Len={ result . Count } , Fin={ result . EndOfMessage } : { content } ") ;
77
77
78
- result = await webSocket . ReceiveAsync ( new ArraySegment < byte > ( buffer ) , CancellationToken . None ) ;
79
- LogFrame ( logger , result , buffer ) ;
78
+ result = await webSocket . ReceiveAsync ( buffer . AsMemory ( ) , CancellationToken . None ) ;
79
+ LogFrame ( logger , webSocket , result , buffer ) ;
80
80
}
81
- await webSocket . CloseAsync ( result . CloseStatus . Value , result . CloseStatusDescription , CancellationToken . None ) ;
81
+ await webSocket . CloseAsync ( webSocket . CloseStatus . Value , webSocket . CloseStatusDescription , CancellationToken . None ) ;
82
82
}
83
83
84
- private void LogFrame ( ILogger logger , WebSocketReceiveResult frame , byte [ ] buffer )
84
+ private void LogFrame ( ILogger logger , WebSocket webSocket , ValueWebSocketReceiveResult frame , byte [ ] buffer )
85
85
{
86
- var close = frame . CloseStatus != null ;
86
+ var close = frame . MessageType == WebSocketMessageType . Close ;
87
87
string message ;
88
88
if ( close )
89
89
{
90
- message = $ "Close: { frame . CloseStatus . Value } { frame . CloseStatusDescription } ";
90
+ message = $ "Close: { webSocket . CloseStatus . Value } { webSocket . CloseStatusDescription } ";
91
91
}
92
92
else
93
93
{
0 commit comments