Documentation
¶
Index ¶
- Variables
- func NewBasicLogger(l SimpleLogger) *basicLogger
- func NewBasicSimpleLogger(l SmallestLogger) *basicSimpleLogger
- func NewDefaultLogger() *basicLogger
- func SetDefaultLogger(logger Logger)
- func WriteOrLog(p Peer, msg []byte)
- type EventDrivenServer
- func (s *EventDrivenServer) AddPeer(p Peer) int
- func (s *EventDrivenServer) AfterAddPeer(f func(newPeer Peer)) *EventDrivenServer
- func (s *EventDrivenServer) AfterRemovePeer(f func(targetId int)) *EventDrivenServer
- func (s *EventDrivenServer) AppendPeerMsg(p Peer, d []byte)
- func (s *EventDrivenServer) BeforeAddPeer(f func(newPeer Peer)) *EventDrivenServer
- func (s *EventDrivenServer) BeforeProcPeerMsg(f func(m *PeerMsg)) *EventDrivenServer
- func (s *EventDrivenServer) BeforeRemovePeer(f func(targetId int)) *EventDrivenServer
- func (s *EventDrivenServer) ForEachPeer(f func(peer Peer))
- func (s *EventDrivenServer) Logger() Logger
- func (s *EventDrivenServer) OnPeerMsg(f func(m *PeerMsg)) *EventDrivenServer
- func (s *EventDrivenServer) Peer(id int) (Peer, error)
- func (s *EventDrivenServer) PeerCount() int
- func (s *EventDrivenServer) RemovePeer(peerId int) (err error)
- func (s *EventDrivenServer) Start() (errs []error)
- func (s *EventDrivenServer) Stop()
- func (s *EventDrivenServer) WithLogger(l Logger) *EventDrivenServer
- func (s *EventDrivenServer) WithName(n string) *EventDrivenServer
- type GameServer
- type LockstepServer
- func (s *LockstepServer) AppendPeerMsg(p Peer, d []byte)
- func (s *LockstepServer) CurrentStep() int
- func (s *LockstepServer) CurrentStepLength() int
- func (s *LockstepServer) OnStep(f func(peerMsgs []PeerMsg)) *LockstepServer
- func (s *LockstepServer) Start() (errs []error)
- func (s *LockstepServer) Stop()
- func (s *LockstepServer) WithMaxStepLength(maxStepLength int) *LockstepServer
- func (s *LockstepServer) WithMinStepLength(minStepLength int) *LockstepServer
- func (s *LockstepServer) WithStepLength(stepLength int) *LockstepServer
- type LogLevel
- type Logger
- type Peer
- type PeerMsg
- type SimpleLogger
- type SmallestLogger
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func NewBasicLogger ¶
func NewBasicLogger(l SimpleLogger) *basicLogger
func NewBasicSimpleLogger ¶
func NewBasicSimpleLogger(l SmallestLogger) *basicSimpleLogger
func NewDefaultLogger ¶
func NewDefaultLogger() *basicLogger
func SetDefaultLogger ¶
func SetDefaultLogger(logger Logger)
func WriteOrLog ¶ added in v0.5.0
Types ¶
type EventDrivenServer ¶
type EventDrivenServer struct {
// contains filtered or unexported fields
}
func NewEventDrivenServer ¶
func NewEventDrivenServer() *EventDrivenServer
func (*EventDrivenServer) AddPeer ¶
func (s *EventDrivenServer) AddPeer(p Peer) int
Activate a peer, allocate a peerId and manage the peer's lifecycle.
func (*EventDrivenServer) AfterAddPeer ¶
func (s *EventDrivenServer) AfterAddPeer(f func(newPeer Peer)) *EventDrivenServer
Register lifecycle hook. At this time the new peer's id has been allocated, the peer is started and `peers` contains the new peer. This hook may be triggered concurrently.
func (*EventDrivenServer) AfterRemovePeer ¶
func (s *EventDrivenServer) AfterRemovePeer(f func(targetId int)) *EventDrivenServer
Register lifecycle hook. The target peer may not exist. If it exists, it must been closed, and been removed from `peers`. This hook may be triggered concurrently.
func (*EventDrivenServer) AppendPeerMsg ¶
func (s *EventDrivenServer) AppendPeerMsg(p Peer, d []byte)
func (*EventDrivenServer) BeforeAddPeer ¶
func (s *EventDrivenServer) BeforeAddPeer(f func(newPeer Peer)) *EventDrivenServer
Register lifecycle hook. At this time the new peer's id has NOT been allocated, the new peer is not started, and `peers` does not contain the new peer. This hook won't be triggered concurrently.
func (*EventDrivenServer) BeforeProcPeerMsg ¶
func (s *EventDrivenServer) BeforeProcPeerMsg(f func(m *PeerMsg)) *EventDrivenServer
Register lifecycle hook. You can modify or enrich the peer message before process it. This hook may be triggered concurrently.
func (*EventDrivenServer) BeforeRemovePeer ¶
func (s *EventDrivenServer) BeforeRemovePeer(f func(targetId int)) *EventDrivenServer
Register lifecycle hook. The target peer may has been closed. The target peer may not exist. This hook may be triggered concurrently.
func (*EventDrivenServer) ForEachPeer ¶ added in v0.4.0
func (s *EventDrivenServer) ForEachPeer(f func(peer Peer))
Thread safe. Do NOT AddPeer or RemovePeer in f, which will cause dead lock.
func (*EventDrivenServer) Logger ¶ added in v0.4.0
func (s *EventDrivenServer) Logger() Logger
func (*EventDrivenServer) OnPeerMsg ¶
func (s *EventDrivenServer) OnPeerMsg(f func(m *PeerMsg)) *EventDrivenServer
Register lifecycle hook. This hook may be triggered concurrently.
func (*EventDrivenServer) Peer ¶ added in v0.4.0
func (s *EventDrivenServer) Peer(id int) (Peer, error)
Retrieve a peer. Return error if peer not exists.
func (*EventDrivenServer) PeerCount ¶ added in v0.4.0
func (s *EventDrivenServer) PeerCount() int
func (*EventDrivenServer) RemovePeer ¶
func (s *EventDrivenServer) RemovePeer(peerId int) (err error)
Close the peer and untrack it. Return err if peer not exist.
func (*EventDrivenServer) Start ¶
func (s *EventDrivenServer) Start() (errs []error)
Return errors from peer.Close() when stop the server.
func (*EventDrivenServer) Stop ¶
func (s *EventDrivenServer) Stop()
func (*EventDrivenServer) WithLogger ¶
func (s *EventDrivenServer) WithLogger(l Logger) *EventDrivenServer
func (*EventDrivenServer) WithName ¶ added in v0.4.0
func (s *EventDrivenServer) WithName(n string) *EventDrivenServer
type GameServer ¶
type LockstepServer ¶
type LockstepServer struct { *EventDrivenServer // contains filtered or unexported fields }
func NewLockstepServer ¶ added in v0.3.0
func NewLockstepServer() *LockstepServer
func (*LockstepServer) AppendPeerMsg ¶
func (s *LockstepServer) AppendPeerMsg(p Peer, d []byte)
func (*LockstepServer) CurrentStep ¶ added in v0.4.0
func (s *LockstepServer) CurrentStep() int
func (*LockstepServer) CurrentStepLength ¶ added in v0.4.0
func (s *LockstepServer) CurrentStepLength() int
func (*LockstepServer) OnStep ¶
func (s *LockstepServer) OnStep(f func(peerMsgs []PeerMsg)) *LockstepServer
Register lifecycle hook. This hook may be triggered concurrently.
func (*LockstepServer) Start ¶
func (s *LockstepServer) Start() (errs []error)
Return errors from peer.Close() when stop the server.
func (*LockstepServer) Stop ¶
func (s *LockstepServer) Stop()
func (*LockstepServer) WithMaxStepLength ¶ added in v0.4.0
func (s *LockstepServer) WithMaxStepLength(maxStepLength int) *LockstepServer
Set the max step length and ensure the current step length is valid.
func (*LockstepServer) WithMinStepLength ¶ added in v0.4.0
func (s *LockstepServer) WithMinStepLength(minStepLength int) *LockstepServer
Set the min step length and ensure the current step length is valid.
func (*LockstepServer) WithStepLength ¶ added in v0.4.0
func (s *LockstepServer) WithStepLength(stepLength int) *LockstepServer
Set the current step length. The step length won't be higher than `maxStepLength` and lower than `minStepLength`.
type Logger ¶
type Logger interface { Trace(v ...interface{}) Debug(v ...interface{}) Info(v ...interface{}) Warn(v ...interface{}) Error(v ...interface{}) Fatal(v ...interface{}) Panic(v ...interface{}) Tracef(format string, v ...interface{}) Debugf(format string, v ...interface{}) Infof(format string, v ...interface{}) Warnf(format string, v ...interface{}) Errorf(format string, v ...interface{}) Fatalf(format string, v ...interface{}) Panicf(format string, v ...interface{}) }
You can use `NewBasicLogger` to create a Logger.
func DefaultLogger ¶ added in v0.4.0
func DefaultLogger() Logger
Get the existing or create a new default logger.
type SimpleLogger ¶
type SimpleLogger interface { Trace(v ...interface{}) Debug(v ...interface{}) Info(v ...interface{}) Warn(v ...interface{}) Error(v ...interface{}) Fatal(v ...interface{}) Panic(v ...interface{}) }
You can use `NewBasicSimpleLogger` to create a SimpleLogger.
type SmallestLogger ¶
type SmallestLogger interface {
Print(v ...interface{})
}
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
example
|
|
plugin
|
|
network/kcp
Module
|
|
network/kcp-smux
Module
|
|
network/websocket
Module
|
|
stream/kinesis
Module
|