Weave 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

Web Socket Bundle Laravel Package

gos/web-socket-bundle

A Symfony bundle for adding real-time WebSocket features to your app. It provides a Ratchet-based server, topic-based publish/subscribe, RPC, authentication, and Symfony service integration for easy bidirectional communication.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Real-time transport selection for a roadmap item — if the backlog contains live notifications, presence/“who’s online,” chat, collaborative editing, or streaming dashboard updates, this package is a candidate answer to “how do we push server events to browsers without polling?” It bundles the server (Ratchet) and a JavaScript client (Autobahn.JS), so it covers both ends of the wire in one dependency.
  • Build vs. buy for a WebSocket tier — the package lets you self-host a WebSocket server inside an existing PHP application rather than procuring a managed service (Pusher, Ably) or standing up a separate Node/Go service. That is a cost/ops trade: no per-message vendor billing, but you now own a long-running process, its supervision, and its scaling story.
  • Ecosystem fit triage (the decisive one) — this is a Symfony bundle, not a Laravel package. For a Laravel roadmap the honest framing is “reference architecture, not a dependency”: Laravel’s first-party path is Reverb/Soketi/Pusher plus Echo, and adopting this would mean importing Symfony bundle conventions, a Kernel/config layer, and a DI container idiom that does not exist in a Laravel app. Product decision: only scope this in if the target service is Symfony-based.
  • Maintenance-signal evaluation — the v3.15.0 release (a single fix for deprecated command configuration under Symfony 6.1) is the first movement since 2022-09-20. It is a compatibility patch, not a revival: no new capabilities, no Ratchet upgrade, no support statement, and still 0 Packagist dependents. Read it as “the maintainer merged a bug report,” not “this is actively invested in.” It supports the decision to standardize on a maintained transport before real-time work enters a sprint.
  • Scope-cutting heuristic for MVP — where real-time is a “nice to have,” this package’s existence is a reminder that the cheapest MVP is often polling or SSE; reserving WebSockets for features where bidirectional latency is genuinely user-visible.

When to Consider This Package

Consider it only when all of the following hold:

  • The application is Symfony (or you are maintaining an existing Symfony service), and the team is already comfortable with bundle registration, service tagging, and long-running console commands.
  • You need self-hosted pub/sub with a WAMP-style topic/session model, and a managed vendor is ruled out on cost, data residency, or air-gapped deployment.
  • Your expected concurrency is modest and you can accept a single-process or manually sharded server with an external pub/sub (Redis) for multi-node fan-out.
  • You have an owner for operational concerns: process supervision, TLS termination, reconnect/backoff behavior, and load testing — none of which the package solves for you.

Look elsewhere when:

  • You are on Laravel. Use Reverb (first-party, actively developed), Soketi, or a managed Pusher-compatible service with Echo on the client. The integration cost here is not “install a package,” it is “reconcile two frameworks.”
  • Maintenance is a hard requirement. One targeted patch does not change the picture: the release cadence is roughly one commit per year, there are no downstream packages on Packagist to absorb upgrade cost, and the fix itself is scoped to Symfony 6.1-era deprecations while current Symfony lines have moved on. You remain the maintainer of last resort — including PHP 8.x compatibility, security patches, and Ratchet upgrades.
  • You need horizontal scale, guaranteed delivery, or presence at scale. This is a session/topic fan-out server, not a message broker; durability, ordering guarantees, and backpressure are out of scope.
  • You only need one-way server→client updates. SSE or simple polling is cheaper to build, cheaper to operate, and passes through proxies and CDNs more predictably.
  • You need a supported commercial SLA or audited security posture — a sub-1k-star community bundle will not satisfy procurement.

How to Pitch It (Stakeholders)

To executives: This is a self-hosted WebSocket server for Symfony applications. It would let us push live updates to users without a per-message vendor bill, but it is a build-and-operate commitment, not a purchase — we would own a long-running service, its scaling, and its security patching. Two facts should shape the decision: it is Symfony-only (not compatible with our Laravel stack without meaningful rework), and while a v3.15.0 patch shipped recently — the first release since September 2022 — it is a one-line compatibility fix for Symfony 6.1 deprecations, not evidence of renewed investment or support. Recommendation: do not adopt as a dependency. Treat it as a design reference, and standardize real-time on a maintained transport (Laravel Reverb/Soketi or a managed Pusher-compatible service) before committing real-time features to a roadmap.

To engineering: The package is Ratchet plus a Symfony bundle wrapper plus an Autobahn.JS client — a complete WAMP topic/session stack in one install. The value is the wiring, not novel technology: topic-based pub/sub, session handling, and a JS client with reconnect semantics already written. The costs are equally concrete: a long-running PHP process to supervise, Redis (or similar) required for any multi-node fan-out, no delivery guarantees, and an upstream that ships roughly one fix per year. The new v3.15.0 tag resolves a deprecated command-configuration warning on Symfony 6.1 and nothing else — treat it as a signal the repo is reachable, not as a maintenance guarantee, and assume we would carry the next framework bump ourselves. If we are on Symfony and want a self-hosted prototype, this is a fast path to a demo. If we are on Laravel, we get the same capability from Reverb with first-party support, active maintenance, and no framework-translation layer — so the honest comparison is “weeks of integration risk plus ongoing ownership versus a supported dependency.”

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console