Real-time collaboration websocket transport support using WordPress.com infrastructure.
This package extends Gutenberg's Real-Time Collaboration (RTC) feature with a PingHub WebSocket transport provider, replacing the default HTTP polling with persistent WebSocket connections through the WordPress.com PingHub service.
Add the package as a dependency in your plugin's composer.json:
"require": {
"automattic/jetpack-rtc": "@dev"
}Then initialize it in your plugin:
use Automattic\Jetpack\Rtc;
RTC::init();The package has two main layers:
RTC— Main class. Manages providers, enqueues assets, registers REST routes, and handles the RTC settings.REST_Pinghub_Token— REST endpoint that generates short-lived JWTs for PingHub WebSocket authentication.
rtc.ts— Entry point. Registers the PingHub provider via thesync.providersfilter.providers/pinghub/— PingHub provider implementation:pinghub-provider.ts— Yjs provider (thin shell delegating to the manager).pinghub-manager.ts— Per-room sync protocol, awareness, and reconnection logic.pinghub-bridge.ts— WebSocket transport layer.
If you plan on using this package in your WordPress plugin, we would recommend that you use Jetpack Autoloader as your autoloader. This will allow for maximum interoperability with other plugins that use this package as well.
Need to report a security vulnerability? Go to https://automattic.com/security/ or directly to our security bug bounty site https://hackerone.com/automattic.
rtc is licensed under GNU General Public License v2 (or later)