pm_socket.js browser library changelog
Jump to a version or snapshot
History of the browser WebSocketConnection library using all four source copies: resources/pm_socket_v1.js, resources/pm_socket_.js, resources/pm_socket.js, and root pm_socket.js. The v1 filename is a legacy label, not an in-code version declaration.
How to read this history
- Approximate dates: source-file modification timestamps in UTC, not confirmed release dates. A timestamp may reflect a later save, backup, or copy.
- Evidence: surviving source snapshots and direct comparisons; no usable Git history is available. A baseline lists capabilities already present, not their original introduction dates.
- Scope: source-based reconstruction; historical code was not imported or executed.
Releases and snapshots
Current served snapshot
Approximate date: 2026-03-16 (snapshot timestamp, UTC).
- Added opt-in
auto_ping_interval, interpreted as seconds on connection. Automatic pings log latency and close the socket after a two-second response timeout; the interval is cleared when the connection is no longer alive. - Added the terms-of-use header and current-resource location comment.
- After a successful automatic ping, clears
_ping_attemptso the pending timeout will not close the connection for that completed attempt. Unlike the root variant below, its timeout closes the socket without first clearingalive.
Evidence: Served resource resources/pm_socket.js; compared with previous snapshot resources/pm_socket_.js and same-day root variant pm_socket.js.
Root snapshot variant
Approximate date: 2026-03-16 (snapshot timestamp, UTC).
- Also contains automatic ping support, but clears
alivebefore closing the socket on timeout, preventing the ordinaryonclosereconnection path from running for that timeout. - Does not clear
_ping_attemptafter a successful ping. Consequently, the two-second timeout can still close a connection after a successful response if no subsequent attempt has replaced the marker. - This is a distinct implementation preserved alongside the served resource, not an additional declared release. Its modification timestamp is earlier on the same UTC day; the exact edit or publication sequence is not established.
Evidence: Root variant pm_socket.js; compared with served variant resources/pm_socket.js.
Connection callback snapshot
Approximate date: 2024-08-18 (snapshot timestamp, UTC).
- Added
connect_handler, initialized tonulland invoked when the browser WebSocket emitsopen. - Added the documentation URL comment. Both this snapshot and the preceding legacy copy have 2024-08-18 modification dates; their order is also supported by the source delta.
Evidence: Callback snapshot resources/pm_socket_.js; compared with legacy v1 file resources/pm_socket_v1.js.
Legacy v1 baseline
Approximate date: 2024-08-18 (snapshot timestamp, UTC).
- Already contains
WebSocketConnection, open/close/error/message handlers, staged reconnection attempts, connection-state checks, and explicit disconnection. - Already handles
::connect::,::disconnect::,::ping::, and::pong::control messages, message callbacks, predicate-based response waiting, sending, and latency measurement.
Evidence: Oldest legacy file resources/pm_socket_v1.js.
Source inventory and reconstruction limits
All four matching copies were inspected, yielding four distinct source states, including two same-day automatic-ping variants. No in-code release numbers or historical notes are available. Python PmSocket lives in aiohttp_ws.py and its changes belong to the aiohttp_ws changelog.