Centrifugo
sail
Our great sponsors
Centrifugo | sail | |
---|---|---|
31 | 9 | |
7,815 | 1,545 | |
1.9% | 3.4% | |
9.0 | 8.4 | |
2 days ago | 8 days ago | |
Go | Shell | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Centrifugo
- Millions of Active WebSockets with Node.js
-
Show HN: DriftDB is an open source WebSocket back end for real-time apps
https://github.com/centrifugal/centrifugo
It's a complete solution, including server, admin panel and client library.
We're an European company and use OVH, Hetzner and others.
-
Laravel Websockets vs Soketi vs Laravel Echo Server
Hello! Theoretically you can take a look at https://github.com/centrifugal/centrifugo - which is a standalone self-hosted real-time messaging server. It does not have native support for Laravel and not compatible with Pusher protocol, though integrating with any backend system, including Laravel: see the blog post https://centrifugal.dev/blog/2021/12/14/laravel-multi-room-chat-tutorial, also has some helper packages:
-
What is the coolest Go open source projects you have seen?
Centrifugo https://centrifugal.dev/ https://github.com/centrifugal/centrifugo
- Golang updating the front-end with almost real-time events from the backend server
- Concurrency with Gin
-
Woe be onto you for using a WebSocket
Every time I read criticism of WebSockets it reminds me about WebSuckets (https://speakerdeck.com/3rdeden/websuckets) presentation :)
I am the author of Centrifugo server (https://github.com/centrifugal/centrifugo) - where the main protocol is WebSocket. Agree with many points in post – and if there is a chance to build sth without replacing stateless HTTP to persistent WebSocket (or EventSource, HTTP-streaming, raw TCP etc) – then definitely better to go without persistent connections.
But there are many tasks where WebSockets simply shine – by providing a better UX, providing a more interactive content, instant information/feedback. This is important to keep - even if underlying stack is complicated enough. Not every system need to scale to many machines (ex. multiplayer games with limited number of players), corporate apps not really struggle from massive reconnect scenarios, and so on. So WebSockets are definitely fine for certain scenarios IMO.
I described some problems with WebSockets Centrifugo solves in this blog post - https://centrifugal.dev/blog/2020/11/12/scaling-websocket. I don't want to say there are no problems, I want to say that WebSockets are fine in general and we can do some things to deal with things mentioned in the OP's post.
- Centrifugo – self-hosted real-time messaging server with bidirectional (WebSocket, SockJS) and unidirectional transports (Eventsource, HTTP-streaming, GRPC), JSON and Protobuf protocols, builtin scalability with PUB/SUB brokers, fully universal/language-agnostic.
-
Updating flutter app data from REST API in real-time
Install Centrifugo - https://github.com/centrifugal/centrifugo
-
Just another simple, fast, and resilient open-source WebSockets server. 📣
For those who looking into Laravel WebSockets replacement give a chance to https://github.com/centrifugal/centrifugo - it proved to help a lot dealing with WebSocket connections to backends built in languages without native/performant concurrency support. So you can continue writing business logic in Laravel, but let Centrifugo deal with persistent connection management and issue real-time updates over API.
sail
-
Should I move to Docker?
I recommend using sail, it is pretty reasonable and for non laravel projects just get some inspiration from sail's github repo: https://github.com/laravel/sail/tree/1.x/runtimes/8.0
-
Just another simple, fast, and resilient open-source WebSockets server. 📣
If it supports Docker, it can be installed in Laravel Sail (I have already submitted a PR for this)
What are some alternatives?
Laradock - Full PHP development environment for Docker.
Socket.io - Realtime application framework (Node.JS server)
NATS - Golang client for NATS, the cloud native messaging system.
Confluent Kafka Golang Client - Confluent's Apache Kafka Golang client
docker-compose-laravel - A docker-compose workflow for local Laravel development
Mercure - 🪽 An open, easy, fast, reliable and battery-efficient solution for real-time communications
lando - A development tool for all your projects that is fast, easy, powerful and liberating
laravel-websockets - Websockets for Laravel. Done right.
docker-laravel-echo-server - Repository of oanhnn/laravel-echo-server Docker image.
Uniqush-Push - Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices.
soketi - Next-gen, Pusher-compatible, open-source WebSockets server. Simple, fast, and resilient. 📣
Pusher - Ruby library for Pusher Channels HTTP API