TCPGolangTCP
TCP
这个包中,首先将处理连接分为两种
AsyncProcessorSyncProcessor
其中异步处理器会在处理连接时,分为读协程、写协程以及工作协程,同时工作协程是可以配置多个的,数据流转为
连接 -> 读取协程 --Worker通道--> 多个Worker处理 --> 调度器 --写通道--> 写协程--> 连接
调度器则作为一个协调器使用,调取内存取了连接、写入通道等,其结构定义如下
// Scheduler
// 调度器
type Scheduler struct {
// 连接
Conn *Connection
// 上下文
Ctx context.Context
// 写入通道
WriteChan chan<- []byte
rw sync.RWMutex
values map[interface{}]interface{}
}
Worker
Connectionnet.Conn
WorkHandlerTCPHandler
ConnectedHandlerClosedHandlerErrorHandlerFinishHandler
通过go get 获取
go get -v github.com/shootingfans/socket
v1.0.2issue