You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
886 B
Go

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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)
}