@@ -163,15 +163,18 @@ public async Task BlazorServerTemplateWorks_IndividualAuth(BrowserKind browserKi
163
163
var page = await browser . NewPageAsync ( ) ;
164
164
EventHandler < RequestEventArgs > requestHandler = ( s , e ) => LogRequest ( e . Request ) ;
165
165
EventHandler < ResponseEventArgs > responseHandler = ( s , e ) => LogResponse ( e . Response ) ;
166
+ EventHandler < WebSocketEventArgs > socketTrafficInspector = ( s , e ) => LogSocketTraffic ( e . WebSocket ) ;
166
167
167
168
page . Request += requestHandler ;
168
169
page . Response += responseHandler ;
170
+ page . WebSocket += socketTrafficInspector ;
169
171
170
172
await aspNetProcess . VisitInBrowserAsync ( page ) ;
171
173
await TestBasicNavigation ( page ) ;
172
174
173
175
page . Request -= requestHandler ;
174
176
page . Response -= responseHandler ;
177
+ page . WebSocket -= socketTrafficInspector ;
175
178
176
179
await page . CloseAsync ( ) ;
177
180
}
@@ -182,6 +185,22 @@ public async Task BlazorServerTemplateWorks_IndividualAuth(BrowserKind browserKi
182
185
}
183
186
}
184
187
188
+ void LogSocketTraffic ( IWebSocket socket )
189
+ {
190
+ socket . FrameReceived += ( s , e ) => LogFrame ( ( IWebSocket ) s , sent : false , e . Payload ) ;
191
+ socket . FrameSent += ( s , e ) => LogFrame ( ( IWebSocket ) s , sent : true , e . Payload ) ;
192
+ socket . SocketError += ( s , e ) => LogSocketError ( ( IWebSocket ) s , e . ErrorMessage ) ;
193
+ socket . Close += ( s , e ) => Output . WriteLine ( $ " [WebSocket][{ ( ( IWebSocket ) s ) . Url } ] is closed.") ;
194
+
195
+ void LogFrame ( IWebSocket s , bool sent , string payload ) =>
196
+ Output . WriteLine ( $ " [WebSocket][{ s . Url } ] { ( sent ? "sent" : "received" ) } frame with payload" +
197
+ Environment . NewLine +
198
+ $ " { payload } ") ;
199
+
200
+ void LogSocketError ( IWebSocket s , string message ) =>
201
+ Output . WriteLine ( $ " [WebSocket][{ s . Url } ] has error { message } ") ;
202
+ }
203
+
185
204
void LogRequest ( IRequest request )
186
205
{
187
206
Output . WriteLine ( $ " [Request]{ ( request . IsNavigationRequest ? "[Navigation]" : "" ) } { request . Method } { request . Url } ") ;
0 commit comments