Documentation ¶
Overview ¶
Package network 网络模块
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface { Session // Connect 连接服务 Connect(host string, port int) error // Logger 获取日志实例 Logger() logger.Logger }
Client 客户端
type Crypto ¶
type Crypto interface { // Encrypt 加密 Encrypt(in []byte) ([]byte, error) // Decrypt 解密 Decrypt(in []byte) ([]byte, error) }
Crypto 加密与解密接口
type Datapack ¶
type Datapack interface { // HeaderLen 头部长度 HeaderLen() int // Pack 封包 header Pack(message Message, crypto Crypto) ([]byte, error) // Unpack 解包 header Unpack(buffer *circle.Circle, crypto Crypto) ([]Message, error) // IsCrypto 是否进行加密与解密 IsCrypto() bool }
Datapack 通讯数据封包与解包接口 分为 header 和 body 两部分
type Helper ¶
type Helper interface { // Logger 获取日志 Logger() logger.Logger // Datapack 获取封包与解包器 Datapack() Datapack // RecvBufferSize 接收消息 buffer 大小 RecvBufferSize() int // RecvDeadLine SetReadDeadline RecvDeadLine() time.Duration // RecvQueueSize 接收到的消息队列大小,接收到的消息由 Session 放到 Peer 的队列中,异步处理 RecvQueueSize() int // SendBufferSize 发送的消息队列大小,消息优先发送到 Session 的消息队列,然后写入到套接字中 SendBufferSize() int // SendDeadLine SendDeadline SendDeadLine() time.Duration // SendQueueSize 发送消息队列的大小 SendQueueSize() int // Dispatch 分发消息 Dispatch(message Message) error }
Helper ..
type Message ¶
type Message interface { // SessionID sessionID SessionID() SessionID // SetSessionID 设置 sessionID SetSessionID(sessionID SessionID) // ID 消息 ID ID() MessageID // Flag 标记 Flag() uint16 // SN 自增编号 SN() uint16 // Payload 负载 Payload() []byte // String 打印消息 String() string }
Message 消息包
type MessageHander ¶
MessageHander 处理客户端消息
type Peer ¶
type Peer interface { // Start 开启服务 Start() // Close 关闭服务,释放资源 Close() error // Logger 获取日志实例 Logger() logger.Logger }
Peer 服务器接口,比如 tcp 服务器,udp 服务器,websocket 服务器
type Session ¶
type Session interface { // Run 让当前连接开始收发消息,一般用于连接成功之后 Run() // Close 停止接收客户端消息,也不再接收服务端消息。当已接收的服务端消息发送完毕后,断开连接 Close() // RegisterOnConnected 客户端连接到来时的响应 RegisterOnConnected(f ConnFunc) // RegisterOnClose 客户端连接关闭时的响应 RegisterOnClose(f ConnFunc) // Send 发送消息给客户端 Send(message Message) error // SendCallback 发送消息个客户端,发送之后进行回调 SendCallback(message Message, callback SendCallbackFunc) error // ID 获取 sessionID,每一条连接都分配有一个唯一的 id ID() SessionID // RemoteAddr 客户端地址信息 RemoteAddr() net.Addr // Conn 获取原始的连接 Conn() net.Conn // SetCrypto 设置加密与解密方式 SetCrypto(crypto Crypto) }
Session 与客户端的一条连接,也称为会话
type SessionManager ¶
type SessionManager interface { // Add 添加 Session Add(session Session) // Del 移除 Session Del(sessionID SessionID) // Get(sessionID SessionID) (Session, error) Get(sessionID SessionID) (Session, error) // Len 获取当前 Session 数量 Len() int // Close 当前所有连接停止接收客户端消息,不再接收服务端消息,当已接收的服务端消息发送完毕后,断开连接 // timeout 超时时间,如果超时仍未发送完已接收的服务端消息,也强行关闭连接 Close() // Send 发送消息给客户端 Send(sessionID SessionID, message Message) error // SendCallback 发送消息个客户端,发送之后进行回调 SendCallback(sessionID SessionID, message Message, callback SendCallbackFunc) error // SendAll 给所有客户端发送消息 SendAll(message Message) }
SessionManager session 管理器
Directories ¶
Path | Synopsis |
---|---|
Package client 用于连接 peer
|
Package client 用于连接 peer |
tcp
Package tcp TCP 客户端
|
Package tcp TCP 客户端 |
Package crypto 客户端与服务端收发消息时的加密与解密
|
Package crypto 客户端与服务端收发消息时的加密与解密 |
rc4
Package rc4 封装 crypto/rc4
|
Package rc4 封装 crypto/rc4 |
Package datapack 通讯数据封包与解包
|
Package datapack 通讯数据封包与解包 |
fixedlen
Package fixedlen : header + payload header: '负载长度(U16)' + '标记(U16)' + '自增编号(U16)' + '消息编号(U16)' payload: 负载,即消息内容,使用 codec 进行编码与解码 对于标记见 flag.go
|
Package fixedlen : header + payload header: '负载长度(U16)' + '标记(U16)' + '自增编号(U16)' + '消息编号(U16)' payload: 负载,即消息内容,使用 codec 进行编码与解码 对于标记见 flag.go |
Package peer 通讯协议,当前支持 tcp 和 websocket
|
Package peer 通讯协议,当前支持 tcp 和 websocket |
tcp
Package tcp TCP 服务器
|
Package tcp TCP 服务器 |
Package session 表示与客户端的一条连接,也称为会话
|
Package session 表示与客户端的一条连接,也称为会话 |
Click to show internal directories.
Click to hide internal directories.