Documentation ¶
Index ¶
- Constants
- func BumpTriad(id *binary.Triad) (result binary.Triad)
- func BumpUInt16(id *uint16) (result uint16)
- type Expire
- type Handler
- type Handlers
- type Server
- func (ser *Server) AddBlockedAddress(ip net.IP, exp *Expire, reason string)
- func (s *Server) Cancel() context.CancelFunc
- func (ser *Server) CloseSession(addr *net.UDPAddr, reason string) error
- func (ser *Server) CloseSessionGUID(guid int64, reason string) error
- func (ser *Server) Count() int
- func (ser *Server) GetSession(addr *net.UDPAddr) (*Session, bool)
- func (ser *Server) GetSessionGUID(guid int64) (*Session, bool)
- func (ser *Server) HasBlockedAddress(ip net.IP) bool
- func (ser *Server) HasSession(addr net.Addr) bool
- func (ser *Server) HasSessionGUID(guid int64) bool
- func (ser *Server) IsClosed() bool
- func (ser *Server) IsRunning() bool
- func (ser *Server) ListenAndServe(ctx context.Context, addr *net.UDPAddr) error
- func (ser *Server) RangeSessions(f func(key string, value *Session) bool) error
- func (ser *Server) RemoveBlockedAddress(ip net.IP)
- func (ser *Server) SendPacket(guid int64, b []byte, reliability raknet.Reliability, channel int) error
- func (ser *Server) SendRawPacket(addr *net.UDPAddr, b []byte)
- func (ser *Server) Serve(ctx context.Context, l *net.UDPConn) error
- func (s *Server) SetCancel(cancel context.CancelFunc)
- func (s *Server) Shutdown()
- func (ser *Server) Start(ip string, port int)
- func (ser *Server) State() ServerState
- type ServerState
- type Session
- func (session *Session) Close() error
- func (session *Session) Init()
- func (session *Session) SendCustomPacket(epks []*protocol.EncapsulatedPacket, updateRecoveryQueue bool) (int, error)
- func (session *Session) SendPacket(pk raknet.Packet, reliability raknet.Reliability, channel int) (protocol.EncapsulatedPacket, error)
- func (session *Session) SendPacketBytes(b []byte, reliability raknet.Reliability, channel int) (protocol.EncapsulatedPacket, error)
- func (session *Session) SendRawPacket(pk raknet.Packet)
- func (session *Session) SystemAddress() *raknet.SystemAddress
- func (session *Session) Timestamp() int64
- type SessionState
- type SplitPacket
Constants ¶
View Source
const (
PermanentExpire = -1
)
Variables ¶
This section is empty.
Functions ¶
func BumpUInt16 ¶
Types ¶
type Expire ¶
func (*Expire) IsPermanent ¶
type Handler ¶
type Handler interface { // Start is called when the server is started StartServer() // Close is called when the server is closed CloseServer() // HandlePing is called when a ping packet is received HandlePing(addr net.Addr) // OpenedPreConn is called when a new client is created before OpenedPreConn(addr net.Addr) // OpenedConn is called when a new client is created OpenedConn(uid int64, addr net.Addr) // ClosedPreConn is called when a client is closed before ClosedPreConn(uid int64) // ClosedConn is called when a client is closed ClosedConn(uid int64) // Timeout is called when a client is timed out Timedout(uid int64) // AddedBlockedAddress is called when a client is added blocked address AddedBlockedAddress(ip net.IP, reason string) // RemovedBlockedAddress is called when a client is removed blocked address RemovedBlockedAddress(ip net.IP) // HandleSendPacket handles a packet sent from the server to a client HandleSendPacket(addr net.Addr, pk raknet.Packet) // HandleRawPacket handles a raw packet no processed in Raknet server HandleRawPacket(addr net.Addr, pk raknet.Packet) // HandlePacket handles a message packet HandlePacket(uid int64, pk raknet.Packet) // HandleUnknownPacket handles a unknown packet HandleUnknownPacket(uid int64, pk raknet.Packet) }
Handler handles processing from server
type Server ¶
type Server struct { Logger raknet.Logger Handlers Handlers MaxConnections int MTU int Identifier identifier.Identifier NetworkProtocol int UUID uuid.UUID // BroadcastingEnabled broadcast the server for the outside // if it enabled, the server send UnconnectedPong when received UnconnectPing. BroadcastingEnabled bool // contains filtered or unexported fields }
func (*Server) AddBlockedAddress ¶
func (*Server) Cancel ¶
func (s *Server) Cancel() context.CancelFunc
func (*Server) CloseSession ¶
func (*Server) CloseSessionGUID ¶
func (*Server) HasSessionGUID ¶
func (*Server) ListenAndServe ¶
func (*Server) RangeSessions ¶
RangeSessions processes for the sessions instead of "for range". if f returns false, stops the loop.
key is string(returned net.Addr.String()), value is *Session returns errors if key and value is invalid.
func (*Server) RemoveBlockedAddress ¶
func (*Server) SendPacket ¶
func (*Server) SetCancel ¶
func (s *Server) SetCancel(cancel context.CancelFunc)
func (*Server) State ¶
func (ser *Server) State() ServerState
type ServerState ¶
type ServerState int
ServerState is a server state
const ( StateNew ServerState = iota StateRunning StateClosed )
type Session ¶
type Session struct { // Addr is the client's address to connect Addr *net.UDPAddr // Conn is a connection for the client Conn *net.UDPConn // Logger is a logger Logger raknet.Logger // Server is the server instance. Server *Server // GUID is session's GUID GUID int64 // MTU is the max packet size to receive and send MTU int State SessionState // Latency is the average latency time data Latency *raknet.Latency // PacketReceivedCount is sent a packet counter // It's used to check packets count on every second PacketSentCount int // PacketReceivedCount is received a packet counter // It's used to check packets count on every second PacketReceivedCount int // LastPacketSendTime is the last time sent a packet LastPacketSendTime time.Time // LastPacketReceiveTime is the last time received a packet LastPacketReceiveTime time.Time // LastRecoverySendTime is the last time sent a lost packet LastRecoverySendTime time.Time // LastKeepAliveSendTime is the last time sent DetectLostConnection packet LastKeepAliveSendTime time.Time // LastPacketCounterResetTime is the last time reset packet counters LastPacketCounterResetTime time.Time // LastPingSendTime is the last time sent a ping packet LastPingSendTime time.Time // contains filtered or unexported fields }
Session
func (*Session) SendCustomPacket ¶
func (*Session) SendPacket ¶
func (session *Session) SendPacket(pk raknet.Packet, reliability raknet.Reliability, channel int) (protocol.EncapsulatedPacket, error)
func (*Session) SendPacketBytes ¶
func (session *Session) SendPacketBytes(b []byte, reliability raknet.Reliability, channel int) (protocol.EncapsulatedPacket, error)
func (*Session) SendRawPacket ¶
func (*Session) SystemAddress ¶
func (session *Session) SystemAddress() *raknet.SystemAddress
type SessionState ¶
type SessionState int
const ( StateDisconected SessionState = iota StateHandshaking StateConnected )
type SplitPacket ¶
type SplitPacket struct { SplitID int SplitCount int Reliability raknet.Reliability Payloads map[int][]byte }
SplitPacket is used to easily assemble split packets
func (*SplitPacket) Update ¶
func (spk *SplitPacket) Update(epk *protocol.EncapsulatedPacket) (b []byte)
Click to show internal directories.
Click to hide internal directories.