Socket.IO for Golang

A modern, idiomatic Go implementation of Socket.IO, designed for real-time, bidirectional communication over WebSockets and other transports.
β¬οΈ Upgrade Guide
If you are upgrading from v1 or v2 of this library, please refer to the Upgrade Guide for detailed instructions, including package replacements and migration steps.
π 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
Install the PostgreSQL adapter:
go get github.com/zishang520/socket.io/adapters/postgres/v3
Install the Valkey adapter:
go get github.com/zishang520/socket.io/adapters/valkey/v3
Install the MongoDB adapter:
go get github.com/zishang520/socket.io/adapters/mongo/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 Modules
Root
| State |
Go Module |
Description |
 |
github.com/zishang520/socket.io/v3 |
Root module with shared interfaces, types, and base definitions |
Servers
| State |
Go Module |
Description |
 |
github.com/zishang520/socket.io/servers/engine/v3 |
Engine.IO server implementation for low-level transport handling |
 |
github.com/zishang520/socket.io/servers/socket/v3 |
Socket.IO server implementation built atop the Engine.IO server |
Clients
| State |
Go Module |
Description |
 |
github.com/zishang520/socket.io/clients/engine/v3 |
Engine.IO client implementation |
 |
github.com/zishang520/socket.io/clients/socket/v3 |
Socket.IO client implementation built atop the Engine.IO client |
Parsers
| State |
Go Module |
Description |
 |
github.com/zishang520/socket.io/parsers/engine/v3 |
Packet parser for Engine.IO protocol |
 |
github.com/zishang520/socket.io/parsers/socket/v3 |
Packet parser for Socket.IO protocol |
Adapters
| State |
Go Module |
Description |
 |
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 |
 |
github.com/zishang520/socket.io/adapters/valkey/v3 |
Valkey-based adapter for broadcasting messages across distributed servers using Pub/Sub |
 |
github.com/zishang520/socket.io/adapters/postgres/v3 |
PostgreSQL-based adapter for broadcasting messages across distributed servers using LISTEN/NOTIFY |
 |
github.com/zishang520/socket.io/adapters/mongo/v3 |
MongoDB-based adapter for broadcasting messages across distributed servers |
 |
github.com/zishang520/socket.io/adapters/unix/v3 |
Unix Domain Socket-based adapter for broadcasting messages across processes on the same machine |
π§Ύ License
This project is licensed under the MIT License.
CDN acceleration and security protection for this project are sponsored by Tencent EdgeOne.
Best Asian CDN, Edge, and Secure Solutions - Tencent EdgeOne