Documentation
¶
Overview ¶
Package network 定义了网络通信的核心接口,包括客户端、服务器和连接。 支持 TCP、KCP、WebSocket 等多种网络协议。
Index ¶
- type Attr
- type Client
- type CloseHandler
- type Conn
- type ConnState
- type ConnectHandler
- type DefaultAttr
- type DisconnectHandler
- type HeartbeatChecker
- func (hc *HeartbeatChecker) CheckTimeout(currentTime time.Time) bool
- func (hc *HeartbeatChecker) GetLastHeartbeatTime() int64
- func (hc *HeartbeatChecker) GetStats() *HeartbeatStats
- func (hc *HeartbeatChecker) HandleReceivedHeartbeat() (shouldRespond bool)
- func (hc *HeartbeatChecker) HandleTick(currentTime time.Time) bool
- func (hc *HeartbeatChecker) IsEnabled() bool
- func (hc *HeartbeatChecker) IsStopped() bool
- func (hc *HeartbeatChecker) StartTicker() (*time.Ticker, chan struct{})
- func (hc *HeartbeatChecker) Stop()
- func (hc *HeartbeatChecker) UpdateHeartbeat()
- type HeartbeatConfig
- type HeartbeatHandler
- type HeartbeatMechanism
- type HeartbeatStats
- type ReceiveHandler
- type Server
- type StartHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
// Dial 连接到指定的服务器地址。
// addr 可以传入多个地址,客户端会依次尝试连接。
Dial(addr ...string) (Conn, error)
// Protocol 返回客户端使用的网络协议名称(如 "tcp"、"kcp"、"ws")。
Protocol() string
// OnConnect 注册连接建立时的回调处理器。
OnConnect(handler ConnectHandler)
// OnReceive 注册接收到消息时的回调处理器。
OnReceive(handler ReceiveHandler)
// OnDisconnect 注册连接断开时的回调处理器。
OnDisconnect(handler DisconnectHandler)
}
Client 网络客户端接口,用于建立和管理网络连接。 实现该接口可以支持多种网络协议(TCP、KCP、WebSocket 等)。
type Conn ¶
type Conn interface {
// ID 获取连接ID
ID() int64
// UID 获取用户ID
UID() int64
// Attr 属性接口
Attr() Attr
// Bind 绑定用户ID
Bind(uid int64)
// Unbind 解绑用户ID
Unbind()
// Send 发送消息(同步)
Send(msg []byte) error
// Push 发送消息(异步)
Push(msg []byte) error
// State 获取连接状态
State() ConnState
// Close 关闭连接
Close(force ...bool) error
// LocalIP 获取本地IP
LocalIP() (string, error)
// LocalAddr 获取本地地址
LocalAddr() (net.Addr, error)
// RemoteIP 获取远端IP
RemoteIP() (string, error)
// RemoteAddr 获取远端地址
RemoteAddr() (net.Addr, error)
}
type DefaultAttr ¶ added in v1.0.9
type DefaultAttr struct {
// contains filtered or unexported fields
}
DefaultAttr 默认属性实现
func (*DefaultAttr) Visit ¶ added in v1.0.9
func (a *DefaultAttr) Visit(fn func(key, value any) bool)
Visit 访问所有的属性值
type HeartbeatChecker ¶ added in v1.0.9
type HeartbeatChecker struct {
// contains filtered or unexported fields
}
HeartbeatChecker 心跳检测器
func NewHeartbeatChecker ¶ added in v1.0.9
func NewHeartbeatChecker(config *HeartbeatConfig, handler *HeartbeatHandler, connID int64) *HeartbeatChecker
NewHeartbeatChecker 创建心跳检测器
func (*HeartbeatChecker) CheckTimeout ¶ added in v1.0.9
func (hc *HeartbeatChecker) CheckTimeout(currentTime time.Time) bool
CheckTimeout 检查心跳是否超时 返回 true 表示超时
func (*HeartbeatChecker) GetLastHeartbeatTime ¶ added in v1.0.9
func (hc *HeartbeatChecker) GetLastHeartbeatTime() int64
GetLastHeartbeatTime 获取最后心跳时间
func (*HeartbeatChecker) GetStats ¶ added in v1.0.9
func (hc *HeartbeatChecker) GetStats() *HeartbeatStats
GetStats 获取心跳统计信息
func (*HeartbeatChecker) HandleReceivedHeartbeat ¶ added in v1.0.9
func (hc *HeartbeatChecker) HandleReceivedHeartbeat() (shouldRespond bool)
HandleReceivedHeartbeat 处理收到的心跳包 shouldRespond 返回是否应该响应心跳
func (*HeartbeatChecker) HandleTick ¶ added in v1.0.9
func (hc *HeartbeatChecker) HandleTick(currentTime time.Time) bool
HandleTick 处理心跳定时器tick 返回 false 表示连接应该关闭
func (*HeartbeatChecker) IsEnabled ¶ added in v1.0.9
func (hc *HeartbeatChecker) IsEnabled() bool
IsEnabled 检查心跳是否启用
func (*HeartbeatChecker) IsStopped ¶ added in v1.0.9
func (hc *HeartbeatChecker) IsStopped() bool
IsStopped 检查是否已停止
func (*HeartbeatChecker) StartTicker ¶ added in v1.0.9
func (hc *HeartbeatChecker) StartTicker() (*time.Ticker, chan struct{})
StartTicker 启动心跳定时器 返回 ticker 和 stop channel
func (*HeartbeatChecker) UpdateHeartbeat ¶ added in v1.0.9
func (hc *HeartbeatChecker) UpdateHeartbeat()
UpdateHeartbeat 更新最后心跳时间
type HeartbeatConfig ¶ added in v1.0.9
type HeartbeatConfig struct {
Interval time.Duration // 心跳检测间隔时间
Mechanism HeartbeatMechanism // 心跳机制
Timeout time.Duration // 心跳超时时间(默认为 2 * Interval)
}
HeartbeatConfig 心跳配置
func DefaultHeartbeatConfig ¶ added in v1.0.9
func DefaultHeartbeatConfig() *HeartbeatConfig
DefaultHeartbeatConfig 默认心跳配置
func (*HeartbeatConfig) GetTimeout ¶ added in v1.0.9
func (c *HeartbeatConfig) GetTimeout() time.Duration
GetTimeout 获取超时时间
type HeartbeatHandler ¶ added in v1.0.9
type HeartbeatHandler struct {
// OnTimeout 心跳超时回调
OnTimeout func()
// OnSendHeartbeat 发送心跳回调
OnSendHeartbeat func() error
}
HeartbeatHandler 心跳处理回调
type HeartbeatMechanism ¶ added in v1.0.9
type HeartbeatMechanism string
HeartbeatMechanism 心跳机制类型
const ( // RespHeartbeat 响应式心跳:收到客户端心跳后响应 RespHeartbeat HeartbeatMechanism = "resp" // TickHeartbeat 主动定时心跳:服务端主动发送心跳 TickHeartbeat HeartbeatMechanism = "tick" )
type HeartbeatStats ¶ added in v1.0.9
type HeartbeatStats struct {
ConnID int64
LastHeartbeatTime time.Time
Interval time.Duration
Mechanism HeartbeatMechanism
IsTimeout bool
}
HeartbeatStats 心跳统计信息
type ReceiveHandler ¶
ReceiveHandler 接收消息时的回调函数类型
type Server ¶
type Server interface {
// Addr 返回服务器监听的地址
Addr() string
// Start 启动服务器,开始监听客户端连接
Start() error
// Stop 停止服务器,关闭所有连接
Stop() error
// Protocol 返回服务器使用的网络协议名称(如 "tcp"、"kcp"、"ws")
Protocol() string
// OnStart 注册服务器启动时的回调处理器
OnStart(handler StartHandler)
// OnStop 注册服务器关闭时的回调处理器
OnStop(handler CloseHandler)
// OnConnect 注册连接建立时的回调处理器
OnConnect(handler ConnectHandler)
// OnReceive 注册接收到消息时的回调处理器
OnReceive(handler ReceiveHandler)
// OnDisconnect 注册连接断开时的回调处理器
OnDisconnect(handler DisconnectHandler)
}
Server 网络服务器接口,用于监听和处理客户端连接。 实现该接口可以支持多种网络协议(TCP、KCP、WebSocket 等)。