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