Socket.IO for Golang

A modern, idiomatic Go implementation of Socket.IO, designed for real-time, bidirectional communication over WebSockets and other transports.
π Getting Started
Check out the official documentation to get started, including examples, API references, and guides.
Install a specific module:
go get github.com/zishang520/socket.io/servers/socket/v3
β Questions & Support
The Issues section is only for confirmed bugs or feature requests.
For general help or implementation questions:
π Security
If you discover a vulnerability or security issue, do not file a public issue. Instead, please follow the steps in our Security Policy.
π Contributing
We welcome contributions of all kinds! To report bugs, suggest features, or submit pull requests:
- Please read our Contributing Guide for best practices
- Ensure your changes are well-tested and formatted with
make fmt
- Open an issue or discussion before starting major changes
Thanks to all contributors who make this project better β€οΈ
π¦ Modules
This project is a monorepo containing the following Go modules:
| Go Module |
Description |
github.com/zishang520/socket.io/v3 |
Root module with shared interfaces, types, and base definitions |
github.com/zishang520/socket.io/servers/engine/v3 |
Engine.IO server implementation for low-level transport handling |
github.com/zishang520/socket.io/clients/engine/v3 |
Engine.IO client implementation |
github.com/zishang520/socket.io/parsers/engine/v3 |
Packet parser for Engine.IO protocol |
github.com/zishang520/socket.io/servers/socket/v3 |
Socket.IO server implementation built atop the Engine.IO server |
github.com/zishang520/socket.io/clients/socket/v3 |
Socket.IO client implementation built atop the Engine.IO client |
github.com/zishang520/socket.io/parsers/socket/v3 |
Packet parser for Socket.IO protocol |
github.com/zishang520/socket.io/adapters/adapter/v3 |
Base adapter interface for implementing broadcast mechanisms |
github.com/zishang520/socket.io/adapters/redis/v3 |
Redis-based adapter for broadcasting messages across distributed servers using Redis Pub/Sub |
π§Ύ License
This project is licensed under the MIT License.