The WebSocket support added for TrueNAS JSON-RPC 2.0 requires the
phrity/websocket library to actually be available at runtime. This repo
commits the vendor/ tree (CI does not run composer install), so the
dependency and composer.lock must be committed for class_exists() checks
in the TrueNAS app to succeed.
- composer require phrity/websocket:^3.6 (resolves to 3.7.3) with lock
and vendor/ committed
- Fix TrueNASWebSocketClient to catch WebSocket\Exception\Exception
(phrity/websocket v3 namespace) instead of the non-existent
WebSocket\ConnectionException from the old textalk/websocket v1/v2 API,
so connection/call failures are logged and wrapped as intended
TrueNAS is deprecating the REST API (api/v2.0/) in version 26.04,
requiring migration to JSON-RPC 2.0 over WebSocket.
This commit adds:
- phrity/websocket dependency for WebSocket communication
- TrueNASWebSocketClient helper class that handles:
- Connection to ws(s)://host/api/current
- Authentication via auth.login_with_api_key
- JSON-RPC 2.0 request/response formatting
- TLS verification toggle
- Proper connection cleanup
Refs: #1530