Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Rfc6455 Laravel Package

ratchet/rfc6455

Protocol handler for RFC6455 WebSockets. Provides server/client handshake and message framing/negotiation components while staying framework-agnostic and I/O-free. Leaves spec ambiguities to implementers and integrates HTTP upgrade via PSR-7 interfaces.

View on GitHub
Deep Wiki
Context7

I/O agnostic WebSocket Protocol

Frequently asked questions about Rfc6455
Can I use ratchet/rfc6455 directly in Laravel without an event loop like ReactPHP?
No, this package handles only the WebSocket protocol logic (handshake, framing) and requires an external I/O layer like ReactPHP, Amp, or Swoole. For Laravel, you’d need to integrate it with a separate process or middleware that bridges HTTP requests to an event-driven WebSocket server.
How do I integrate WebSocket handshakes into Laravel’s routing system?
Use a dedicated route (e.g., `Route::get('/ws', ...)`) to trigger `ServerHandshake` via PSR-7. Replace Laravel’s default response with a `StreamedResponse` or custom middleware that hands off the connection to your event loop (e.g., ReactPHP’s `WebSocketServer`).
Does ratchet/rfc6455 support Laravel’s built-in authentication (e.g., Sanctum, Passport)?
Not natively, but you can validate tokens during the HTTP → WebSocket upgrade by extending `ServerHandshake` or using PSR-7 middleware. For example, check JWTs in headers before allowing the connection, or sync sessions via Redis.
What Laravel versions are compatible with ratchet/rfc6455?
Laravel 8.x+ is recommended due to PHP 7.4+ requirements. Older versions (pre-8.x) may conflict with PSR-7 dependencies or lack async-friendly features. Test thoroughly if using Laravel 7.x with a PSR-7 bridge like `nyholm/psr7`.
How do I handle large payloads (e.g., file uploads) without hitting the 2MB MessageBuffer limit?
The default `MessageBuffer` caps payloads at 2MB for security. For larger data, increase the limit via `MessageBuffer::setMaxSize()` or split messages into chunks. Monitor memory usage in high-throughput scenarios (e.g., video streams).
Can I use ratchet/rfc6455 for real-time notifications in Laravel without blocking PHP-FPM?
Yes, but avoid running WebSockets in PHP-FPM. Offload connections to a separate process (e.g., ReactPHP server) and use Laravel’s queues to bridge WebSocket events with jobs/services. This prevents PHP-FPM timeouts and memory leaks.
Are there alternatives to ratchet/rfc6455 for Laravel WebSockets?
Yes: **Laravel Echo + Pusher** (managed), **BeyondCode/Laravel WebSockets** (built on Ratchet), or **Swoole** (native PHP coroutines). Ratchet’s RFC6455 is lighter but requires more setup; alternatives abstract I/O and Laravel integration.
How do I log WebSocket events (e.g., connections, messages) in Laravel?
Extend `ServerHandshake` to emit events (e.g., via Laravel’s `Event` facade) or log directly via `Monolog`. For metrics, use middleware to track connection counts or integrate with tools like Prometheus via custom handlers in your event loop.
Will ratchet/rfc6455 work with Laravel’s horizontal scaling (e.g., multiple app servers)?
No, WebSocket connections are stateful and sticky. Use a load balancer (e.g., Nginx) to proxy WebSocket traffic to a single server or cluster of WebSocket processes. Laravel’s stateless HTTP layer won’t handle persistent connections.
How do I test WebSocket functionality in Laravel with PHPUnit?
Mock the `ServerHandshake` and `MessageBuffer` classes to simulate handshakes and messages. Use tools like **WebSocketKing** or **Pest** for browser-based testing, or integrate with **ReactPHP’s test utilities** to validate protocol compliance without a full event loop.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
ecotone/kafka
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata