Implementation:Microsoft Playwright WebSocketTransport
Overview
WebSocketTransport implements the ConnectionTransport interface over WebSocket connections, providing the primary transport mechanism for connecting to browser DevTools endpoints.
Description
The module defines the core transport types and the WebSocketTransport class. It establishes WebSocket connections to browser debugging endpoints with configurable headers, timeout, and per-message deflate compression. The class handles message serialization/deserialization and connection lifecycle.
Key types defined:
ProtocolRequest-- outgoing protocol command with id, method, params, sessionIdProtocolResponse-- incoming response or event with optional error, result, paramsConnectionTransport-- interface contract for all transport implementations
The module also exports perMessageDeflate configuration for WebSocket compression.
Usage
Used to connect to browser DevTools endpoints (CDP, Juggler, WebKit inspector).
Code Reference
Source Location
packages/playwright-core/src/server/transport.ts (215 lines)
Class Signature
export interface ConnectionTransport {
send(s: ProtocolRequest): void;
close(): void;
onmessage?: (message: ProtocolResponse) => void;
onclose?: (reason?: string) => void;
}
export class WebSocketTransport implements ConnectionTransport {
static connect(progress: Progress | null, url: string, headers?: HeadersArray, followRedirects?: boolean): Promise<WebSocketTransport>
constructor(ws: WebSocket)
send(message: ProtocolRequest): void
close(): void
onmessage?: (message: ProtocolResponse) => void
onclose?: (reason?: string) => void
}
Import
import { WebSocketTransport, perMessageDeflate } from './server/transport';
import type { ConnectionTransport, ProtocolRequest, ProtocolResponse } from './server/transport';
I/O Contract
Inputs
url: string-- WebSocket URL to connect toheaders: HeadersArray-- optional connection headersfollowRedirects: boolean-- whether to follow HTTP redirects
Outputs
- Dispatches parsed
ProtocolResponseobjects viaonmessage - Fires
onclosewhen the WebSocket connection closes
Related Pages
- Implementation:Microsoft_Playwright_PipeTransport -- Pipe-based alternative transport
- Implementation:Microsoft_Playwright_FfConnection -- Firefox connection using transport
- Implementation:Microsoft_Playwright_WkConnection -- WebKit connection using transport
- Implementation:Microsoft_Playwright_HappyEyeballs -- Network agent for connections