Socket.io
Centrifugo
Our great sponsors
Socket.io | Centrifugo | |
---|---|---|
468 | 20 | |
55,738 | 6,027 | |
0.5% | 2.0% | |
8.0 | 7.9 | |
11 days ago | 5 days ago | |
TypeScript | Go | |
MIT License | Apache License 2.0 |
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.
Socket.io
-
I made a documentation driven web-socket framework
The purpose of Asynction is to empower a specification first approach when developing SocketIO APIs in Python. It guarantees that your API will work in accordance with its documentation.
-
Which parts of JS to learn for user interaction with eachother?
socket.io is probably a good first step into this as it's very straightforward to use and will introduce you to principles that you can use for more complicated things going forward 💪
-
API Gateway pattern and WebSockets, how do they work together?
However, being AWS, WebSocket implementation is the bare minimum, no retry, no resume, not compatible with socket.io JS framework you must use raw WebSocket API in JS and building own wrapper would take several weeks so I've looked at alternatives like Ably.
-
What is the best way to build production-ready chat application?
Basically I am working on the project where we need to built the chat application for the client in MERN stack. I am familiar with the MERN stack, and worked on multiple projects and React.js in general is the technology that I am working on for almost 2 years now. I now about Socket.io and watched a few courses on "how to build the chat app using socket.io and React.js".
-
Need help with portfolio
Check out socket.io. Depending on where you are in your journey, it might be a little tricky, or it might be not too bad.
-
How to consume an array continuously without blocking the event loop?
The forked process can send messages back to the parent process so you will still have access to the array and the socket.io instance. For example, API request finishes in the forked process then it sends a message to its parent and the parent handles the message accordingly.
-
Getting "connection failed (403 Forbidden)" error while make connection to python-socketio(socket.io) from FastAPI
I wanted to make a connection on the socket.io so I used python-socket.io in the backend (FastAPI) and socket.io-client for the frontend(React.js) but I have been getting connection failed error (403 Forbidden).
-
i cant deploy my socket.io backend to heroku i get the following error (Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch)
i dont know how to fix it, i set the port by: const io = require('socket.io')(3000), any ideas? i think i might have to set the port a different way in order to work on heroku
- How you handle real time updates maybe one item was sold ?
-
Is Python that bad in performance?
And I do recommend using socket.io over raw websockets handling. Way more handy frontend and backend side.
Centrifugo
- Centrifugo – self-hosted alternative to public real-time messaging clouds like pusher.com, ably.com, pubnub.com
- Concurrency with Gin
- Centrifugo – language-agnostic real-time messaging server (v3.2.0 just released)
-
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.
- Show HN: Centrifugo – self-hosted real-time messaging server written in Go
-
Updating flutter app data from REST API in real-time
Install Centrifugo - https://github.com/centrifugal/centrifugo
-
Websockets and Django Channels
We had a Django-based backend when building an intranet site for a pretty big company (~4k employees) and used https://github.com/centrifugal/centrifugo for delivering real-time updates to users. We had chat widgets, live counters, live comment system, also several corporate multiplayer games based on it. I think it's much more simple to understand and integrate with than Django Channels, more transports supported and scales better. So maybe give it a chance if you are not happy with Channels.
-
GoReleaser v1.0.0 is out!
Using Goreleaser for https://github.com/centrifugal/centrifugo, amazing project – many thanks for it. It allowed us to quickly integrate multi-arch Docker builds recently. There was once a problem where we got faced with backwards compatibility issue during release workflow caused by some deprecation stuff removed from Goreleaser - but that was our mistake to not use a tagged version.
-
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.
What are some alternatives?
Primus - :zap: Primus, the creator god of the transformers & an abstraction layer for real-time to prevent module lock-in.
SocketCluster - Highly scalable realtime framework
deepstream.io - deepstream.io server
SockJS - WebSocket emulation - Node.js server
NATS - Golang client for NATS, the cloud native messaging system.
Pusher - Ruby library for Pusher Channels HTTP API
laravel-websockets - Websockets for Laravel. Done right.
Faye - Simple pub/sub messaging for the web
Mercure - Server-sent live updates: protocol and reference implementation
Confluent Kafka Golang Client - Confluent's Apache Kafka Golang client
ws - Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js