WordPressリアルタイムイベント配信プラグイン
WPSignalは、WebSocketを活用しWordPressサイトでリアルタイムイベントを配信するプラグインです。
WordSocketと連携することで、あらゆるWordPressのフックイベントをトリガーし、ブラウザにイベントを送信できます。
Yjsによる協調編集にも対応し、HTTPポーリングをWebSocket接続で置き換えることで、低遅延なリアルタイム体験を実現します。
セキュリティも考慮され、AES-256 GCMによる暗号化も特徴です。
WordPressのリアルタイムイベント配信を実現する「WPSignal」が登場しました。このプラグインは、Webサイトの動作をリアルタイムで監視し、ブラウザにイベントを配信することで、HTTPポーリングを必要としない、より高速なデータ更新を可能にします。WordSocketプラグインと連携することで、WordPressのあらゆるアクションフックに対応し、PHPコードからブラウザへイベントを送信できるとのことです。
WPSignalとWordSocketの連携によるリアルタイム化
WPSignalは、WordSocketプラグインと組み合わせて使用することで、WordPressサイト上でリアルタイムイベントを配信できます。WordSocketプラグインは、WordPressのアクションフックと連携し、WPSignalはWebSocketリレーとして機能します。これにより、PHPコードからブラウザへイベントを送信し、例えば、記事の更新や注文の支払いなど、様々なイベントをリアルタイムで通知することが可能になります。従来のHTTPポーリング方式と比較して、大幅な高速化と応答性の向上が期待できるようです。
セキュリティと効率性を両立する設計
WPSignalは、セキュリティにも配慮した設計となっています。イベントはSHA-256 HMACによって署名され、タイムスタンプによるリプレイ保護や、サイトごとのレート制限が組み込まれています。また、WordSocketを使用すると、イベントはAES-256-GCM暗号化され、WPSignalが暗号文しか見えないように設計されています。さらに、マルチサイト環境でも、各サイトごとに独自のサイトキーとパブリッシュシークレットを持つため、テナント分離が徹底されています。
WordPressのブロックエディターとの連携
WordPress 7.0で導入されたコラボラティブブロックエディターとの連携も可能です。ブロックエディターは、Yjsという技術を利用してリアルタイム共同編集を実現していますが、デフォルトではHTTPポーリングを使用しています。WordSocketとWPSignalを組み合わせることで、ポーリングをWebSocketベースのYjs同期プロバイダーに置き換えることができ、既存のイベント配信リレーをそのまま利用して、低遅延の接続を実現できます。これにより、共同編集時のパフォーマンスが向上し、よりスムーズな作業環境が実現すると考えられます。
まとめ
WPSignalとWordSocketの組み合わせは、WordPressサイトのリアルタイム機能を大幅に向上させる可能性を秘めています。セキュリティとパフォーマンスの両立を実現し、WordPressの最新機能との連携も可能であることから、今後のWordPress開発において注目される技術となるかもしれません。
原文の冒頭を表示(英語・3段落のみ)
Realtime WordPress events. Zero polling.
WPSignal serves as a WebSocket relay for your WordPress site. In combination with the WordSocket plugin, you can trigger events for any WordPress action hook. Dispatch events from your PHP code to all browsers connected to your site.
Download: WP CLI: wp plugin install wordsocket --activate Composer: composer require wpackagist-plugin/wordsocket 1. Connect Click "Connect to WPSignal" in the settings page:WP Admin > WordSocket > Connect. 2. Authorize Click "Connect to WPSignal" in the settings page: your site registers automatically and credentials are saved. 3. Verify Your site is connected to WPSignal and ready to receive events. WebSocket-first Persistent WebSocket connections with Server-Sent Events as automatic fallback. Keepalive pings every 20 seconds. WP SITE PUBLISH RELAY WPSignal CLIENT CLIENT CLIENT HMAC-signed publishes Every event is signed with SHA-256 HMAC. Timestamp replay protection and per-site rate limiting built in. PAYLOAD TIMESTAMP replay guard · SITE_SECRET HMAC SHA-256 a3f7 9c1e b82d SIG Fluent trigger API Attach events to any WordPress action hook with a builder API: channel, payload, condition and more, all in one call. WP·HOOK CONDITION .when() DATA·BUILDER TRIGGER .register() events post. updated PUBLISH Blind relay encryption When using WordSocket, all events are AES-256-GCM encrypted before leaving WordPress. WPSignal only ever sees ciphertext. PLAINTEXT RAND·IV 12 bytes ENCRYPT·KEY AES·256 GCM dGhp c2lz dGVz CIPHER Multi-site support Each WordPress site gets its own site_key and publish secret. Tenant isolation is enforced at the channel level. SITE·A SITE·B SITE·C RELAY WPSignal site:a events site:b events site:c events Explorer Built-in admin page showing connection status, live event log, publish form, and token inspector for instant debugging. WP·ADMIN CONNECTED EXPLORER post.updated 14ms order.paid 6ms user.login 11ms comment.new 2ms PUBLISH events post.updated LIVE 1 client · 1 ch TOKEN site_id channels exp EVENTS post.updated order.paid user.login Realtime collaborative editingwithout HTTP polling
※ 著作権に配慮し、引用は冒頭3段落までです。続きは元記事をご覧ください。