- Can I install facile-it/crossbar-http-publisher-bundle in a Laravel app?
- No. It is a Symfony bundle with a Bundle class, a DependencyInjection extension, and a Configuration tree that Laravel's container does not execute. There is no service provider, facade, or publishable config, so composer require will not wire it into Laravel. Treat it as a reference implementation and reimplement the HTTP publish call natively.
- Is this a Laravel package or a Symfony bundle?
- It is a Symfony bundle. It ships Symfony-specific dependency injection and configuration, and has no Laravel-tagged release. Its architecture targets Symfony's container lifecycle, not Laravel's, so the bundle class and extension are inert in a Laravel app.
- How do I publish WAMP events to a Crossbar router from Laravel?
- Use Laravel's HTTP client to POST to the Crossbar HTTP Publisher endpoint with the topic, args, and kwargs, and sign the request with the publisher key and secret. Wrap it behind an interface like CrossbarPublisher and queue the call so request cycles are not blocked. The bundle's logic is roughly 80 to 150 lines to reproduce idiomatically in Laravel.
- What does Crossbar HTTP Publisher authentication require?
- Crossbar's HTTP Publisher uses a publisher public key and secret, with the request signed using HMAC per Crossbar's auth contract. You must register the publisher on the router before the first publish succeeds. Keep signing isolated in a small RequestSigner class so it is unit-testable and credential rotation is manageable.
- Does this package guarantee delivery of PubSub messages?
- No. The HTTP Publisher is fire-and-forget: it does not acknowledge subscriber delivery and provides no durable queue. If you need guaranteed delivery, you need a different design, such as a queue plus retries or a broker with acknowledgements. Best-effort fan-out is much cheaper and is usually acceptable for real-time UI events.
- What is the difference between args and kwargs in WAMP publishing?
- In WAMP, args is a positional array and kwargs is an associative array of named arguments delivered to subscribers. The bundle takes a topic plus args and kwargs, serializes them, and posts them to the router. Your Laravel adapter should keep the same publish(string $topic, array $args = [], array $kwargs = []) signature to stay protocol-faithful.
- Is facile-it/crossbar-http-publisher-bundle actively maintained?
- It has a recent release dated 2025-03-12, but activity is low, with roughly 10 stars and no dependents. That is reassuring for stability but not the same as active maintenance. Given the small protocol surface, reimplementation risk is low and bounded.
- What are alternatives to Crossbar for Laravel real-time messaging?
- Consider Redis Pub/Sub, SNS, or Laravel's own broadcasting via Reverb or Pusher. The right choice depends on whether subscribers are internal Laravel services or external third parties, and whether you need acknowledgements. Crossbar is niche, so replacing the router later makes the adapter throwaway.
- Do I need a Crossbar router running to use this bundle?
- Yes. The bundle only publishes to an existing Crossbar router with the HTTP Publisher transport enabled. Without that router and a registered publisher, the package is moot. Confirm router ownership and the publisher credential lifecycle before committing.
- How should I test Crossbar HTTP publishing in Laravel?
- Bind a fake CrossbarPublisher in the container and assert the topic, args, and kwargs in feature tests. Unit-test the RequestSigner separately against known Crossbar signing vectors, and use Http::fake() to assert the outgoing POST. Keep the publisher behind an interface so tests never hit the real router.