docs: 部分注释优化

This commit is contained in:
kercylan98 2023-10-08 10:30:35 +08:00
parent 2e4ab44122
commit 83ab553734
4 changed files with 17 additions and 4 deletions

View File

@ -1,5 +1,6 @@
package cross
// Message 跨服消息数据结构
type Message struct {
ServerId int64 `json:"server_id"`
Packet []byte `json:"packet"`

View File

@ -14,6 +14,7 @@ const (
nasMark = "Cross.Nats"
)
// NewNats 创建一个基于 Nats 实现的跨服消息功能组件
func NewNats(url string, options ...NatsOption) *Nats {
n := &Nats{
url: url,
@ -31,6 +32,7 @@ func NewNats(url string, options ...NatsOption) *Nats {
return n
}
// Nats 基于 Nats 实现的跨服消息功能组件
type Nats struct {
conn *nats.Conn
url string

2
server/gateway/doc.go Normal file
View File

@ -0,0 +1,2 @@
// Package gateway 是用于处理服务器消息的网关模块,适用于对客户端消息进行处理、转发的情况。
package gateway

View File

@ -34,6 +34,14 @@ func NewEndpoint(name string, cli *client.Client, options ...EndpointOption) *En
}
// Endpoint 网关端点
// - 每一个端点均表示了一个目标服务,网关会将数据包转发到该端点,由该端点负责将数据包转发到目标服务。
// - 每个端点会建立一个连接池,默认大小为 DefaultEndpointConnectionPoolSize可通过 WithEndpointConnectionPoolSize 进行设置。
// - 网关在转发数据包时会自行根据延迟维护端点健康值,端点健康值越高,网关越倾向于将数据包转发到该端点。
// - 端点支持连接未中断前始终将数据包转发到特定端点,这样可以保证连接的状态维持。
//
// 连接池:
// - 连接池大小决定了网关服务器与端点服务器建立的连接数,例如当连接池大小为 1 时,那么所有连接到该端点的客户端都会共用一个连接。
// - 连接池的设计可以突破单机理论 65535 个 WebSocket 客户端的限制,适当的增大连接池大小可以提高网关服务器的承载能力。
type Endpoint struct {
gateway *Gateway
client []*client.Client // 端点客户端
@ -46,8 +54,8 @@ type Endpoint struct {
cps int // 端点连接池大小
}
// start 开始与端点建立连接
func (slf *Endpoint) start(gateway *Gateway, cli *client.Client) {
// start 开始与目标服务端点建立连接
func (slf *Endpoint) start(cli *client.Client) {
for {
cur := time.Now().UnixNano()
if err := cli.Run(); err == nil {
@ -76,7 +84,7 @@ func (slf *Endpoint) connect(gateway *Gateway) {
})
cli.RegConnectionClosedEvent(func(conn *client.Client, err any) {
slf.gateway.OnEndpointConnectClosedEvent(slf.gateway, slf)
slf.start(gateway, cli)
slf.start(cli)
})
cli.RegConnectionReceivePacketEvent(func(conn *client.Client, wst int, packet []byte) {
addr, sendTime, packet, err := UnmarshalGatewayInPacket(packet)
@ -93,7 +101,7 @@ func (slf *Endpoint) connect(gateway *Gateway) {
c.SetWST(wst)
slf.gateway.OnEndpointConnectReceivePacketEvent(slf.gateway, slf, c, packet)
})
slf.start(gateway, cli)
slf.start(cli)
leastOnce.Do(least.Done)
}(cli)
}