GitHub - gonet2/agent: A gateway for games with stream multiplexing (original) (raw)
Navigation Menu
Appearance settings
- AI CODE CREATION
* GitHub CopilotWrite better code with AI
* GitHub SparkBuild and deploy intelligent apps
* GitHub ModelsManage and compare prompts
* MCP RegistryNewIntegrate external tools - DEVELOPER WORKFLOWS
* ActionsAutomate any workflow
* CodespacesInstant dev environments
* IssuesPlan and track work
* Code ReviewManage code changes - APPLICATION SECURITY
* GitHub Advanced SecurityFind and fix vulnerabilities
* Code securitySecure your code as you build
* Secret protectionStop leaks before they start - EXPLORE
* Why GitHub
* Documentation
* Blog
* Changelog
* Marketplace
- AI CODE CREATION
- BY COMPANY SIZE
* Enterprises
* Small and medium teams
* Startups
* Nonprofits - BY USE CASE
* App Modernization
* DevSecOps
* DevOps
* CI/CD
* View all use cases - BY INDUSTRY
* Healthcare
* Financial services
* Manufacturing
* Government
* View all industries
- BY COMPANY SIZE
- EXPLORE BY TOPIC
* AI
* Software Development
* DevOps
* Security
* View all topics - EXPLORE BY TYPE
* Customer stories
* Events & webinars
* Ebooks & reports
* Business insights
* GitHub Skills - SUPPORT & SERVICES
* Documentation
* Customer support
* Community forum
* Trust center
* Partners
- EXPLORE BY TOPIC
- COMMUNITY
* GitHub SponsorsFund open source developers - PROGRAMS
* Security Lab
* Maintainer Community
* Accelerator
* Archive Program - REPOSITORIES
* Topics
* Trending
* Collections
- COMMUNITY
- Pricing
Provide feedback
We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Saved searches
Use saved searches to filter your results more quickly
Appearance settings
- Notifications You must be signed in to change notification settings
- Fork93
- Star 247
A gateway for games with stream multiplexing
License
247 stars 93 forks Branches Tags Activity
Notifications You must be signed in to change notification settings
Additional navigation options
Folders and files
| Name | Name | Last commit message | Last commit date |
|---|---|---|---|
| Latest commitHistory223 Commits | |||
| client_handler | client_handler | ||
| misc | misc | ||
| pb | pb | ||
| services | services | ||
| types | types | ||
| utils | utils | ||
| vendor | vendor | ||
| .dockerignore | .dockerignore | ||
| .gitignore | .gitignore | ||
| .travis.yml | .travis.yml | ||
| Dockerfile | Dockerfile | ||
| LICENSE | LICENSE | ||
| README.md | README.md | ||
| agent.go | agent.go | ||
| buffer.go | buffer.go | ||
| build_run.sh | build_run.sh | ||
| forward.go | forward.go | ||
| main.go | main.go | ||
| route.go | route.go | ||
| signal.go | signal.go | ||
| startup.go | startup.go | ||
| timer_work.go | timer_work.go |
Repository files navigation
agent(网关)
特性
- 处理各种协议的接入,同时支持TCP和UDP(KCP协议),进行双栈通信。
- 连接管理,会话建立,数据包加解密(DH+RC4)。
- 透传解密后的原始数据流到后端(通过gRPC streaming)。
- 复用多路用户连接,到一条通往game的物理连接。
- 不断开连接切换后端业务。
- 唯一入口,安全隔离核心服务。
协议号划分
数据包会根据协议编号(0-65535) 透传 到对应的服务, 例如(示范):
1-1000: 登陆相关协议,网关协同auth服务处理。
1001-10000: 游戏逻辑段
....
具体的划分根据业务需求进行扩展或调整。
消息封包格式
+----------------------------------------------------------------+
| SIZE(2) | TIMESTAMP(4) | PROTO(2) | PAYLOAD(SIZE-6) |
+----------------------------------------------------------------+
SIZE: 后续数据包总长度
TIMESTAMP: 数据包序号
PROTO: 协议号
PAYLOAD: 负载
About
A gateway for games with stream multiplexing
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages
No packages published
Contributors4
Languages
- Go 99.2%
- Other 0.8%