Documentation ¶
Index ¶
- Variables
- func BytesToInt(b []byte, n interface{})
- func GZipCompress(data []byte) []byte
- func GZipUnCompress(data []byte) ([]byte, error)
- func IntToBytes(n interface{}) []byte
- func ZlibCompress(data []byte) []byte
- func ZlibUnCompress(data []byte) ([]byte, error)
- type Handler
- type HandlerDefault
- type HandlerEventFunc
- type HandlerEventType
- type HandlerEvents
- type HandlerMessageFunc
- type Header
- type Message
- type MsgDataType
- type MsgFlagType
- type MsgType
- type NetServer
- type NetSocket
- func (s *NetSocket) Close() bool
- func (s *NetSocket) GetUser() interface{}
- func (s *NetSocket) Heartbeat()
- func (s *NetSocket) Id() uint64
- func (s *NetSocket) IsProxy() bool
- func (s *NetSocket) KeepAlive()
- func (s *NetSocket) LocalAddr() string
- func (s *NetSocket) RemoteAddr() string
- func (s *NetSocket) SetRealRemoteAddr(addr string)
- func (s *NetSocket) SetUser(user interface{})
- func (s *NetSocket) Stopped() bool
- func (s *NetSocket) Write(m *Message) (re bool)
- type NetType
- type Server
- type Socket
- type Sockets
- func (s *Sockets) Add(sock Socket) uint64
- func (s *Sockets) Broadcast(msg *Message, filter func(Socket) bool)
- func (s *Sockets) Del(id uint64) bool
- func (s *Sockets) Get(id uint64) Socket
- func (s *Sockets) Range(f func(Socket))
- func (s *Sockets) Size() int
- func (s *Sockets) Start(ctx context.Context)
- type TcpClient
- type TcpServer
- type TcpSocket
Constants ¶
This section is empty.
Variables ¶
View Source
var Config = struct { AutoCompressSize int32 //自动压缩 UdpServerGoCnt int SSLCrtPath string SSLKeyPath string EnableWss bool ReadDataBuffer int StopTimeout int WriteChanSize int32 //写通道缓存 ConnectMaxSize int32 //连接人数 SocketTimeout int //连接超时几次心跳没有动作被判断掉线 SocketHeartbeat int //(MS)服务器心跳,用来检测玩家僵尸连接 MsgDataType MsgDataType //默认包体编码方式 }{ UdpServerGoCnt: 64, ReadDataBuffer: 1 << 12, StopTimeout: 3000, WriteChanSize: 500, ConnectMaxSize: 50000, SocketTimeout: 5, SocketHeartbeat: 2000, MsgDataType: MsgDataTypeProto, }
View Source
var MsgDataSize = 1024 * 1024
View Source
var MsgHeadSize = 12
Functions ¶
func BytesToInt ¶
func BytesToInt(b []byte, n interface{})
字节转换成整形,n 必须是指针 var a int32 BytesToInt([]byte{1},&a)
func GZipCompress ¶
func GZipUnCompress ¶
func ZlibCompress ¶
func ZlibUnCompress ¶
Types ¶
type Handler ¶
type Handler interface { On(HandlerEventType, HandlerEventFunc) Emit(HandlerEventType, Socket) bool Message(Socket, *Message) bool //消息处理函数 }
type HandlerDefault ¶
type HandlerDefault struct { HandlerEvents Handle map[int]HandlerMessageFunc }
func NewHandlerDefault ¶
func NewHandlerDefault() *HandlerDefault
func (*HandlerDefault) Register ¶
func (r *HandlerDefault) Register(act int, fun HandlerMessageFunc)
type HandlerEventFunc ¶
type HandlerEventType ¶
type HandlerEventType int32
const ( HandlerEventTypeConnect HandlerEventType = iota HandlerEventTypeDisconnect )
type HandlerEvents ¶
type HandlerEvents struct {
// contains filtered or unexported fields
}
func (*HandlerEvents) Emit ¶
func (this *HandlerEvents) Emit(e HandlerEventType, s Socket) bool
func (*HandlerEvents) On ¶
func (this *HandlerEvents) On(e HandlerEventType, f HandlerEventFunc)
type HandlerMessageFunc ¶
type Header ¶
type Header struct { Size int32 //数据长度 4294967295 4 Index int32 //消息序号 4 Proto uint16 //协议号 2 Flags MsgFlagType DataType MsgDataType //DATA 格式 }
type MsgDataType ¶
type MsgDataType uint8
const ( MsgDataTypeString MsgDataType = 1 MsgDataTypeInt32 MsgDataType = 2 MsgDataTypeJson MsgDataType = 3 MsgDataTypeProto MsgDataType = 4 MsgDataTypeXml MsgDataType = 5 )
type MsgFlagType ¶
type MsgFlagType uint8
const ( MsgFlagEncrypt MsgFlagType = 1 << 0 //数据是经过加密的 MsgFlagCompress MsgFlagType = 1 << 1 //数据是经过压缩的 MsgFlagContinue MsgFlagType = 1 << 2 //消息还有后续 MsgFlagNeedAck MsgFlagType = 1 << 3 //消息需要确认 MsgFlagSubmit MsgFlagType = 1 << 4 //确认消息 MsgFlagReSend MsgFlagType = 1 << 5 //重发消息 MsgFlagClient MsgFlagType = 1 << 6 //消息来自客服端,用于判断index来之服务器还是其他玩家 )
func (*MsgFlagType) Add ¶
func (m *MsgFlagType) Add(f MsgFlagType)
func (*MsgFlagType) Del ¶
func (m *MsgFlagType) Del(f MsgFlagType)
func (*MsgFlagType) Has ¶
func (m *MsgFlagType) Has(f MsgFlagType) bool
type NetSocket ¶
type NetSocket struct {
// contains filtered or unexported fields
}
func (*NetSocket) RemoteAddr ¶
func (*NetSocket) SetRealRemoteAddr ¶
type Server ¶
type Socket ¶
type Socket interface { Id() uint64 LocalAddr() string RemoteAddr() string SetRealRemoteAddr(addr string) Close() bool IsProxy() bool Write(m *Message) bool SetUser(interface{}) GetUser() interface{} Heartbeat() KeepAlive() }
各种服务器(TCP,UDP,WS)也使用该接口
type Sockets ¶
type Sockets struct {
// contains filtered or unexported fields
}
socket 管理器
type TcpServer ¶
type TcpServer struct { *NetServer // contains filtered or unexported fields }
func NewTcpServer ¶
Click to show internal directories.
Click to hide internal directories.