| 开发者 | wpsignal |
|---|---|
| 更新时间 | 2026年4月13日 11:41 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPL-2.0-or-later |
| 版权网址: | 版权信息 |
window.WPS) for themes and plugins to share the connectionwpsignal_token_channels and wpsignal_token_channel_prefixes filters let other plugins add channels and namespace permissions to the JWT without modifying corewpsignal:* DOM events. The relay never sees plaintext content.wordsocket folder to /wp-content/plugins/, or install directly from the WordPress plugin directory.WPSignal is a realtime event delivery service for WordPress. It pushes events from your site to connected browsers the moment they happen, without polling.
Yes. The plugin requires a WPSignal account to relay events. Create a free account at wpsignal.io.
During registration: your site URL and name. During normal operation: AES-256-GCM encrypted event payloads (the server never sees plaintext content). On WordPress 7.0+, Yjs document updates (binary diffs of block editor content) are also relayed. All data is delivered in realtime and is not stored on the server. See our Privacy Policy for full details.
Event payloads are encrypted with AES-256-GCM before leaving WordPress. The encryption key is derived from your WordPress salts and site key using HKDF-SHA256, and is never sent to the WPSignal server. This means the relay cannot read your message content. Note: all logged-in users on the same site share the same derived key. Per-user message privacy is out of scope for the current version.
The built-in client script loads for logged-in users by default. You can enqueue the script for all visitors by adding wpsignal as a dependency to your own script.
The client falls back to SSE for receiving events. window.WPS.subscribe() and window.WPS.unsubscribe() work on SSE connections: channel changes are tracked and applied immediately via a lightweight SSE reconnect (50 ms debounce). For collaborative editing, the plugin detects the fallback and emits a "not synced" status so WordPress can surface the appropriate indicator. You can also disable the collaboration provider entirely from WordSocket > Settings > Connection to restore WordPress HTTP polling for all editors.
Yes. The Yjs sync provider integration requires WordPress 7.0 or later. The plugin detects the WordPress version and only registers the provider when @wordpress/sync is available.
.pot language file added (eventra-for-wpsignal.pot).objectId; the provider now maps this to a shared "collection" channel suffix so all peers join the same channel.ProviderCreatorOptions type updated to accept objectId: string | number | null, matching the Beta 2 provider creator API.wpsignal_token_channels filter: plugins can append channels to the initial auto-subscribe list in the minted JWT.wpsignal_token_channel_prefixes filter: plugins can add channel-prefix permissions to the JWT allowed_channel_prefixes claim, enabling server-enforced access to custom channel namespaces.window.WPS.subscribe() and window.WPS.unsubscribe() now work on SSE connections. Channel changes are tracked in a persistent set and applied immediately via a debounced SSE reconnect, so plugins that call these methods do not need to know the current transport.forceSSE config flag available for testing the SSE transport without browser tooling.wpsignal_encryption_seed filter for plugins and themes to supply custom key material.SubtleCrypto decryption in the browser client: events are dispatched only after successful decryption.publishBinary() and onBinaryMessage() methods on window.WPS for binary WebSocket frames.transport property on window.WPS exposes the current connection type ('ws', 'sse', or null).disconnected status when WebSocket is unavailable, allowing WordPress to show its "not synced" indicator.window.WPS): subscribe, publish, event listeners.WPS::trigger() fluent builder and WPS::publish() facade methods.WPSignal namespace.@wordpress/scripts build pipeline.