Documentation
¶
Index ¶
- Constants
- Variables
- func Handler(ctx context.Context, store stores.Store, ...) (*sync.WaitGroup, http.HandlerFunc)
- type ClosePacket
- type ConnectPacket
- type CreatePacket
- type CredentialsPacket
- type DisconnectPacket
- type EventPacket
- type ForwardablePacket
- type HelloPacket
- type JoinPacket
- type JoinedPacket
- type LeaderPacket
- type LeavePacket
- type LeftPacket
- type ListPacket
- type LobbiesPacket
- type LobbyUpdatePacket
- type LobbyUpdatedPacket
- type MissingRecipientError
- type Peer
- func (p *Peer) ForwardMessage(ctx context.Context, raw []byte)
- func (p *Peer) HandleClosePacket(ctx context.Context, packet ClosePacket) error
- func (p *Peer) HandleCreatePacket(ctx context.Context, packet CreatePacket) error
- func (p *Peer) HandleHelloPacket(ctx context.Context, packet HelloPacket) error
- func (p *Peer) HandleJoinPacket(ctx context.Context, packet JoinPacket) error
- func (p *Peer) HandleLeaveLobbyPacket(ctx context.Context, packet LeavePacket) error
- func (p *Peer) HandleListPacket(ctx context.Context, packet ListPacket) error
- func (p *Peer) HandlePacket(ctx context.Context, typ string, raw []byte) error
- func (p *Peer) HandleUpdatePacket(ctx context.Context, packet LobbyUpdatePacket) error
- func (p *Peer) RequestConnection(ctx context.Context, otherID string) error
- func (p *Peer) Send(ctx context.Context, packet any) error
- type PingPacket
- type TimeoutManager
- func (manager *TimeoutManager) Disconnected(ctx context.Context, p *Peer)
- func (manager *TimeoutManager) MarkPeerAsActive(ctx context.Context, peerID string)
- func (manager *TimeoutManager) Reconnected(ctx context.Context, peerID, secret, gameID string) (bool, []string, error)
- func (manager *TimeoutManager) Run(ctx context.Context)
- func (manager *TimeoutManager) RunOnce(ctx context.Context)
- type WelcomePacket
Constants ¶
View Source
const DefaultMaxPlayers = 4
View Source
const LobbyCleanInterval = 30 * time.Minute
View Source
const LobbyCleanThreshold = 24 * time.Hour
Variables ¶
View Source
var ErrUnknownPacketType = fmt.Errorf("unknown packet type")
Functions ¶
func Handler ¶
func Handler(ctx context.Context, store stores.Store, cloudflare *cloudflare.CredentialsClient) (*sync.WaitGroup, http.HandlerFunc)
Types ¶
type ClosePacket ¶
type ConnectPacket ¶
type CreatePacket ¶
type CreatePacket struct {
RequestID string `json:"rid"`
Type string `json:"type"`
CodeFormat string `json:"codeFormat"`
Public bool `json:"public"`
Password string `json:"password"`
MaxPlayers *int `json:"maxPlayers"`
CustomData map[string]any `json:"customData"`
CanUpdateBy string `json:"canUpdateBy"`
}
type CredentialsPacket ¶
type CredentialsPacket struct {
cloudflare.Credentials
Type string `json:"type"`
RequestID string `json:"rid,omitempty"`
}
type DisconnectPacket ¶
type EventPacket ¶
type EventPacket struct {
metrics.EventParams
Type string `json:"type"`
}
type ForwardablePacket ¶
type HelloPacket ¶
type JoinPacket ¶
type JoinedPacket ¶
type LeaderPacket ¶
type LeavePacket ¶
type LeftPacket ¶
type ListPacket ¶
type LobbiesPacket ¶
type LobbyUpdatePacket ¶
type LobbyUpdatedPacket ¶
type MissingRecipientError ¶
type MissingRecipientError struct {
Recipient string `json:"recipient"`
Cause error `json:"cause"`
}
func (*MissingRecipientError) Error ¶
func (e *MissingRecipientError) Error() string
func (*MissingRecipientError) ErrorCode ¶
func (e *MissingRecipientError) ErrorCode() string
func (*MissingRecipientError) MarshalJSON ¶
func (e *MissingRecipientError) MarshalJSON() ([]byte, error)
func (*MissingRecipientError) Unwrap ¶
func (e *MissingRecipientError) Unwrap() error
type Peer ¶
type Peer struct {
ID string
Secret string
Game string
Lobby string
LatencyVector []float32
// contains filtered or unexported fields
}
func (*Peer) HandleClosePacket ¶
func (p *Peer) HandleClosePacket(ctx context.Context, packet ClosePacket) error
func (*Peer) HandleCreatePacket ¶
func (p *Peer) HandleCreatePacket(ctx context.Context, packet CreatePacket) error
func (*Peer) HandleHelloPacket ¶
func (p *Peer) HandleHelloPacket(ctx context.Context, packet HelloPacket) error
func (*Peer) HandleJoinPacket ¶
func (p *Peer) HandleJoinPacket(ctx context.Context, packet JoinPacket) error
func (*Peer) HandleLeaveLobbyPacket ¶
func (p *Peer) HandleLeaveLobbyPacket(ctx context.Context, packet LeavePacket) error
func (*Peer) HandleListPacket ¶
func (p *Peer) HandleListPacket(ctx context.Context, packet ListPacket) error
func (*Peer) HandlePacket ¶
func (*Peer) HandleUpdatePacket ¶
func (p *Peer) HandleUpdatePacket(ctx context.Context, packet LobbyUpdatePacket) error
func (*Peer) RequestConnection ¶
type PingPacket ¶
type PingPacket struct {
Type string `json:"type"`
}
type TimeoutManager ¶
func (*TimeoutManager) Disconnected ¶
func (manager *TimeoutManager) Disconnected(ctx context.Context, p *Peer)
func (*TimeoutManager) MarkPeerAsActive ¶
func (manager *TimeoutManager) MarkPeerAsActive(ctx context.Context, peerID string)
func (*TimeoutManager) Reconnected ¶
func (*TimeoutManager) Run ¶
func (manager *TimeoutManager) Run(ctx context.Context)
func (*TimeoutManager) RunOnce ¶
func (manager *TimeoutManager) RunOnce(ctx context.Context)
type WelcomePacket ¶
Click to show internal directories.
Click to hide internal directories.