11using System ;
22using System . Net . WebSockets ;
3- using System . Text ;
4- using System . Threading ;
5- using System . Threading . Tasks ;
63
74namespace NetCoreStack . WebSockets . Internal
85{
@@ -16,50 +13,5 @@ public WebSocketTransport(WebSocket webSocket)
1613 ConnectionId = Guid . NewGuid ( ) . ToString ( ) ;
1714 WebSocket = webSocket ;
1815 }
19-
20- public async Task Echo ( )
21- {
22- var buffer = new byte [ 1024 * 4 ] ;
23- var result = await WebSocket . ReceiveAsync ( new ArraySegment < byte > ( buffer ) , CancellationToken . None ) ;
24- while ( ! result . CloseStatus . HasValue )
25- {
26- string content = "<<binary>>" ;
27- if ( result . MessageType == WebSocketMessageType . Text )
28- {
29- content = Encoding . UTF8 . GetString ( buffer , 0 , result . Count ) ;
30- if ( content . Equals ( "ServerClose" ) )
31- {
32- await WebSocket . CloseAsync ( WebSocketCloseStatus . NormalClosure , "Closing from Server" , CancellationToken . None ) ;
33- }
34- else if ( content . Equals ( "ServerAbort" ) )
35- {
36- WebSocket . Abort ( ) ;
37- }
38- }
39-
40- result = await WebSocket . ReceiveAsync ( new ArraySegment < byte > ( buffer ) , CancellationToken . None ) ;
41- LogFrame ( result , buffer ) ;
42- }
43- await WebSocket . CloseAsync ( result . CloseStatus . Value , result . CloseStatusDescription , CancellationToken . None ) ;
44- }
45-
46- private void LogFrame ( WebSocketReceiveResult frame , byte [ ] buffer )
47- {
48- var close = frame . CloseStatus != null ;
49- string message ;
50- if ( close )
51- {
52- message = $ "Close: { frame . CloseStatus . Value } { frame . CloseStatusDescription } ";
53- }
54- else
55- {
56- string content = "<<binary>>" ;
57- if ( frame . MessageType == WebSocketMessageType . Text )
58- {
59- content = Encoding . UTF8 . GetString ( buffer , 0 , frame . Count ) ;
60- }
61- message = $ "{ frame . MessageType } : Len={ frame . Count } , Fin={ frame . EndOfMessage } : { content } ";
62- }
63- }
6416 }
6517}
0 commit comments