Skip to content

Commit 9580085

Browse files
committed
Log websocket traffic
1 parent 246bdfe commit 9580085

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/ProjectTemplates/BlazorTemplates.Tests/BlazorServerTemplateTest.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,15 +163,18 @@ public async Task BlazorServerTemplateWorks_IndividualAuth(BrowserKind browserKi
163163
var page = await browser.NewPageAsync();
164164
EventHandler<RequestEventArgs> requestHandler = (s, e) => LogRequest(e.Request);
165165
EventHandler<ResponseEventArgs> responseHandler = (s, e) => LogResponse(e.Response);
166+
EventHandler<WebSocketEventArgs> socketTrafficInspector = (s, e) => LogSocketTraffic(e.WebSocket);
166167

167168
page.Request += requestHandler;
168169
page.Response += responseHandler;
170+
page.WebSocket += socketTrafficInspector;
169171

170172
await aspNetProcess.VisitInBrowserAsync(page);
171173
await TestBasicNavigation(page);
172174

173175
page.Request -= requestHandler;
174176
page.Response -= responseHandler;
177+
page.WebSocket -= socketTrafficInspector;
175178

176179
await page.CloseAsync();
177180
}
@@ -182,6 +185,22 @@ public async Task BlazorServerTemplateWorks_IndividualAuth(BrowserKind browserKi
182185
}
183186
}
184187

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+
185204
void LogRequest(IRequest request)
186205
{
187206
Output.WriteLine($" [Request]{(request.IsNavigationRequest ? "[Navigation]" : "")} {request.Method} {request.Url}");

0 commit comments

Comments
 (0)