network

package
v1.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package network 定义了网络通信的核心接口,包括客户端、服务器和连接。 支持 TCP、KCP、WebSocket 等多种网络协议。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Attr

type Attr interface {
	// Set 设置属性值
	Set(key, value any)
	// Get 获取属性值
	Get(key any) (any, bool)
	// Del 删除属性值
	Del(key any) bool
	// Visit 访问所有的属性值
	Visit(fn func(key, value any) bool)
}

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 CloseHandler

type CloseHandler func()

CloseHandler 服务器关闭时的回调函数类型

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 ConnState

type ConnState int32
const (
	ConnOpened ConnState = iota + 1 // 连接打开
	ConnHanged                      // 连接挂起
	ConnClosed                      // 连接关闭
)

type ConnectHandler

type ConnectHandler func(conn Conn)

ConnectHandler 连接建立时的回调函数类型

type DefaultAttr added in v1.0.9

type DefaultAttr struct {
	// contains filtered or unexported fields
}

DefaultAttr 默认属性实现

func NewAttr added in v1.0.9

func NewAttr() *DefaultAttr

NewAttr 创建属性实例

func (*DefaultAttr) Del added in v1.0.9

func (a *DefaultAttr) Del(key any) (ok bool)

Del 删除属性值

func (*DefaultAttr) Get added in v1.0.9

func (a *DefaultAttr) Get(key any) (any, bool)

Get 获取属性值

func (*DefaultAttr) Set added in v1.0.9

func (a *DefaultAttr) Set(key, value any)

Set 设置属性值

func (*DefaultAttr) Visit added in v1.0.9

func (a *DefaultAttr) Visit(fn func(key, value any) bool)

Visit 访问所有的属性值

type DisconnectHandler

type DisconnectHandler func(conn Conn)

DisconnectHandler 连接断开时的回调函数类型

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) Stop added in v1.0.9

func (hc *HeartbeatChecker) Stop()

Stop 停止心跳检测

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

type ReceiveHandler func(conn Conn, buf buffer.Buffer)

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 等)。

type StartHandler

type StartHandler func()

StartHandler 服务器启动时的回调函数类型

Directories

Path Synopsis
ws module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL