GitHub - gonet2/agent: A gateway for games with stream multiplexing (original) (raw)

Skip to content

Sign in

Appearance settings

View all features

View all solutions

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

Sign in

Sign up

Appearance settings

gonet2 / agent Public

A gateway for games with stream multiplexing

License

MIT license

247 stars 93 forks Branches Tags Activity

Star

Notifications You must be signed in to change notification settings

Additional navigation options

BranchesTags

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(网关)

Build Status

特性

  1. 处理各种协议的接入,同时支持TCP和UDP(KCP协议),进行双栈通信。
  2. 连接管理,会话建立,数据包加解密(DH+RC4)。
  3. 透传解密后的原始数据流到后端(通过gRPC streaming)。
  4. 复用多路用户连接,到一条通往game的物理连接。
  5. 不断开连接切换后端业务。
  6. 唯一入口,安全隔离核心服务。

协议号划分

数据包会根据协议编号(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

Readme

License

MIT license

Activity

Custom properties

Stars

247 stars

Watchers

24 watching

Forks

93 forks

Report repository

Releases

No releases published

Packages

No packages published

Contributors4

Languages