Mercure
centrifuge
Our great sponsors
Mercure | centrifuge | |
---|---|---|
19 | 13 | |
3,736 | 979 | |
- | 4.4% | |
8.5 | 8.5 | |
17 days ago | 3 days ago | |
Go | Go | |
GNU Affero General Public License v3.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.
Mercure
-
PHP homies, I hear ya.
Are you aware of things like websockets and mercure.rocks?
-
What is the best way to write a dedicated server?
It could be implemented with STOMP, or Mercure (goes well with API-Platform, written in PHP/Symfony), you could write your own with the help of nchan and scale it via Redis. If it's a web service, the best practices for operating and scaling are well established, Godot then just becomes another client.
-
What to use to replace laravel web sockets?
You can try https://mercure.rocks/.
-
OpenAI server-sent events supported chatbot
It's worth looking at something like Mercure , which is used by API Platform
-
laravel activity feed
Pusher might be one of these systems, Mercure is another one (which you can host yourself). Mercure has good documentation and some examples in various languages, including PHP: https://mercure.rocks/docs/ecosystem/awesome#examples.
-
Golang updating the front-end with almost real-time events from the backend server
You can use Mercure https://mercure.rocks/ , Mercure uses http2.
-
Centrifugo v4 released โ with own WebSocket emulation layer, optimized client protocol, unified SDK behavior, experimental HTTP/3 and WebTransport support
I actually was thinking about this when I saw https://github.com/dunglas/mercure project to become a Caddy plugin. But I did not find enough reasoning to try this with Centrifugo at that point, and still... Seems awesome from one side - tight integration with a web-server, no extra network between LB and Centrifugo. But will this be useful in practice and find its users? ๐ค That's the question I don't have an answer yet.
-
How would I automatically update how much users are signed up for each group?
Polling is kind of ok (data might change between poll events), but real-time updates are better. So If you don't mind adding an extra service, then take a look at mercure.
- Mercure: Real-Time Made Easy
-
Announcing GraphQL Yoga 2.0!
Two more questions: - Am I to understand The Guild now recommends GraphQL Yoga over Helix? - Could something like Mercure be included in the recipes ? (this would be a nice solution for serverless)
centrifuge
-
Centrifugo v5 - new major release of real-time messaging server written in Go
BTW, Centrifugo is based on https://github.com/centrifugal/centrifuge Go library which may provide much more control and flexibility for Gophers than a standalone server and can be embedded to any Go app leveraging all Centrifugo client SDKs.
-
Websocket memory usage
There are libraries which provide more advanced APIs for creating real-time applications, for example https://github.com/centrifugal/centrifuge
- Centrifuge - multi-transport real-time messaging library with built-in scalability
-
Elixir or golang which wiil be good for large websocket connections.
Yes, but there are two excelent libs for golang websockets - https://github.com/gobwas/ws - https://github.com/centrifugal/centrifuge
- Millions of Active WebSockets with Node.js
-
Best way for broadcast message un websocket
What https://github.com/centrifugal/centrifuge does:
-
Gorilla/websocket or Melody?
Have you considered https://github.com/centrifugal/centrifuge? It also uses Gorilla WebSocket for WebSocket transport at the moment โ but it's hidden inside and may be replaced if needed since Transport interface is pluggable. It's more heavyweight though than both Melody and Gorilla WebSocket but provides much more functionality out-of-the-box.
-
What libraries are missing?
Not a Socket.IO compatible but maybe you will find it useful/interesting: https://github.com/centrifugal/centrifuge
-
Centrifugo v4 released โ with own WebSocket emulation layer, optimized client protocol, unified SDK behavior, experimental HTTP/3 and WebTransport support
Thanks! BTW, Centrifugo's core is based on https://github.com/centrifugal/centrifuge Go library - which theoretically can be more flexible and extensible solution for Go developers than Centrifugo server since server dictates some auth/permission/channel/api rules.
-
TCP or websockets for chat server
Hello, +1 to WebSockets. If you need to choose WS library โ go with https://github.com/gorilla/websocket or https://github.com/gobwas/ws. You can also look at Centrifugo server (https://centrifugal.dev/, supports WebSocket, SockJS bidi transports, also EventSource, HTTP-streaming, GRPC unidirectional transports and many builtin features) or https://github.com/centrifugal/centrifuge Go library.
What are some alternatives?
Socket.io - Realtime application framework (Node.JS server)
websocket - A fast, well-tested and widely used WebSocket implementation for Go.
Centrifugo - Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
beaver - ๐จ A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.
amqp091-go - An AMQP 0-9-1 Go client maintained by the RabbitMQ team. Originally by @streadway: `streadway/amqp`
jetstream - JetStream Utilities
NATS - Golang client for NATS, the cloud native messaging system.
kcptun - A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64ใN:M ๅค้ๅใจ FEC ใๅใใ KCP ใซๅบใฅใๅฎๅฎใใๅฎๅ จใชใใณใใซใ N:M ๋ค์คํ ๋ฐ FEC๋ฅผ ์ฌ์ฉํ๋ KCP ๊ธฐ๋ฐ์ ์์ ์ ์ด๊ณ ์์ ํ ํฐ๋์ ๋๋ค. Un tunnel stable et sรฉcurisรฉ basรฉ sur KCP avec multiplexage N:M et FEC.
sarama - Sarama is a Go library for Apache Kafka. [Moved to: https://github.com/IBM/sarama]
apd - Arbitrary-precision decimals for Go