Open googollee opened 6 years ago
Do you still need contributors for this project? I can help solve some issues。
@dayueba Yes, of course
I really wanna contribute to open-source. So, I would also like to help you as much as I can
Is there some sort of roadmap to make this library compatible with socket.io version 2, 3 or 4?
Given the experiences I had with open-source recently (with auto-GPT where others would take my code and submit their own PR request, and this other would be one of the main maintainers), plus the state of open-source currently, I would not join as maintainer on this project. However, as I see the license, kindly let know if there are any restrictions to use portions of the code in a new project. I want to have a fresh start with upcoming version 5 in mind, and also utilizing wherever I can Golang 1.21, and new features like generics, etc
@sagarishere you can find the license here: https://github.com/googollee/go-socket.io/blob/master/LICENSE
Is there some sort of roadmap to make this library compatible with socket.io version 2, 3 or 4?
Nope. Because no one contribute into this project. I haven't free time to this project. If you would like to help, you are welcome
I want to do the functionality to support 2, 3, and 4, but how can I help us?
@alanarturohernandez awesome!!! make small, targeted and clear pull requests that do this and we'll review them. We don't want to break backwards compatibility if not strictly necessary, so just keep that in mind.
happy new year guys
Hello here @googollee , I'd also love to be added as a contributor to this project
Hey, @Othie12 You could bring new update and can merge updates as can faster as possible
JOIN OUR TELEGRAM CHAT: https://t.me/go_socketio
TL;DR, Anyone wants to take over this project? I hope someone can help me to maintain it.
I created this project when I needed it during my work. The code was 0.9.x branch which corresponded to socket.io 0.9.x. That branch worked OK, but the code itself was very ugly and low-performance.
So after a while, I started working on the v1.4 branch, when socket.io was 1.4 at that time. But I had changed my work at that time, and the new work didn't require socket.io. I wanted to use unit test to make it right but looked not good.
Currently, I leave master as 0.9.x because I don't want to break anyone's project by the huge change. (Blame package managing of Go.) So even the master branch should be the latest code, it isn't. You can use gopkg.in/googollee/go-socket.io.v1 as importing path if you want to use v1.4. Or you can use dep or any pkg manager you like.
As my work doesn't require socket.io now and I focus on learning English recently, I don't have time to maintain this project. I hope any volunteer can take over it.
This part writes for the potential maintainer. I'd like to give you a brief idea how to dive into the code.
The main differences between 0.9.x and v1.4 are listed below:
go-engine.io handles all kinds of transport, like HTTP polling or WebSocket, and turns them into a socket-like interface. it also handles transport upgrading and maintains the session. If a connection breaks and reconnects in a certain time with the same session id, go-engine.io will treat them as same one and will send all data during the breaking time to the new connection.
A WebSocket connection can map to a socket-like interface easily, but not HTTP polling. For HTTP polling, I try to make all read in one thread(more accurate, in one goroutine) and all write in another. Each thread only handles one HTTP request at a time. I try not to let read and write interrupted each other.
I hope this part is good enough to understand and may help when diving into the code.