package server import ( "github.com/noahlann/nnet/internal/connection" protocolpkg "github.com/noahlann/nnet/pkg/protocol" unpackerpkg "github.com/noahlann/nnet/pkg/unpacker" "github.com/panjf2000/gnet/v2" ) // connectionData 连接数据(存储在gnet.Conn.Context()中) type connectionData struct { conn connection.ConnectionInterface unpacker unpackerpkg.Unpacker protocol protocolpkg.Protocol protocolVersion string // 已识别的协议版本(如果为空,表示还未识别) } // getConnectionData 从gnet.Conn获取连接数据 func getConnectionData(c gnet.Conn) *connectionData { if ctx := c.Context(); ctx != nil { if data, ok := ctx.(*connectionData); ok { return data } } return nil } // setConnectionData 设置连接数据到gnet.Conn func setConnectionData(c gnet.Conn, data *connectionData) { c.SetContext(data) }