All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Optional JSONP responses for Pusher channel auth when
jsonpis enabled on the connection (allowJsonp); auth controller passes throughResponsebodies UniqueBroadcastJobwith Cake Queue uniqueness ($shouldBeUnique); fluentPendingBroadcast::unique()and optional eventbroadcastUnique()/broadcastUniqueKey()uniqueCachedocumentation on the broadcasting queue connection config- Broadcaster creation errors wrap the original failure with the connection name when
fallbackisfalse - Integration tests for facade/send/queue paths and fluent
PendingBroadcastAPIs - Unique-job dedupe simulation in
TestQueueAdapter
- Queue name resolution uses a dedicated
resolveBroadcastQueue()helper
- Pusher auth JSONP wrapping when the client sends a
callbackquery parameter and JSONP is allowed
- Document manual
/broadcasting/authroute registration when plugin routes are not loaded - Document Echo React/Vue
useConnectionStatushook and status values - Document Echo
stopListeningForNotificationfor notification channels
BroadcastingTraitfor table classes to provide broadcasting functionalityBroadcastingTraitInterfacefor type-safe broadcasting method contractsTestQueueAdapterfor testing queued broadcasts in test suites- Queue assertion methods to
BroadcastingTraittest helper (assertBroadcastQueued,assertBroadcastQueuedToChannel,assertNoBroadcastsQueued, etc.) - Comprehensive test suite for
BroadcastingTraitwith full coverage
- BREAKING:
BroadcastingBehaviornow requires tables to useBroadcastingTraitand implementBroadcastingTraitInterface - Broadcasting logic moved from
BroadcastingBehaviortoBroadcastingTraitfor better separation of concerns - Updated PHPUnit from 10.5 to 12.5
- Safe channel registration during bootstrap when broadcaster not yet initialized
- Channels file loading during plugin bootstrap
- Optional broadcast message logging with
Broadcasting.logconfiguration
- Broadcaster configuration now uses
classNameinstead ofdriver(BREAKING)
- Plugin manifest integration for automated configuration installation
manifest()method toBroadcastingPluginimplementingManifestInterface- Automatic installation of
config/broadcasting.phpconfiguration file - Automatic installation of
config/channels.phpfile from example template - Automatic bootstrap file configuration loading
- GitHub star repository prompt support
- Plugin now uses manifest system for configuration setup
- Configuration files are installed via
bin/cake manifest install --plugin Crustum/Broadcasting
- Core broadcasting system for WebSocket-based real-time event broadcasting with support for public, private, presence, and encrypted private channels
- Multiple broadcaster drivers (Pusher Channels, Redis, Log, Null) with queue adapter system for async broadcasting
- Channel authorization system with callbacks and channel classes, plus authentication controller and routes
- Model broadcasting behavior for automatic entity event broadcasting, with conditional and queueable interfaces
- Testing utilities with BroadcastingTrait for comprehensive test assertions