Documentation
¶
Index ¶
- Variables
- func Auth(next websocket.Handler) websocket.Handler
- func CleanupClientLimiters(client *websocket.Client)deprecated
- func LoggerWithLogger(logger websocket.Logger) websocket.Middleware
- func LoginStateUpdater(next websocket.Handler) websocket.Handler
- func RateLimit(cfg *RateLimitConfig) websocket.Middleware
- func RateLimitWithStore(cfg *RateLimitConfig, store *RateLimiterStore) websocket.Middleware
- func RecoveryWithLogger(logger websocket.Logger) websocket.Middleware
- func RequestID(next websocket.Handler) websocket.Handler
- type RateLimitConfig
- type RateLimiterStore
Constants ¶
This section is empty.
Variables ¶
var Logger = LoggerWithLogger(websocket.NopLogger())
Logger logs request details after handling. Uses NopLogger by default; use LoggerWithLogger to inject a real logger.
var Recovery = RecoveryWithLogger(websocket.NopLogger())
Recovery catches panics and returns an error response. Uses NopLogger by default; use RecoveryWithLogger to inject a real logger.
Functions ¶
func CleanupClientLimiters
deprecated
func LoggerWithLogger ¶
func LoggerWithLogger(logger websocket.Logger) websocket.Middleware
LoggerWithLogger logs request details after handling using the provided logger.
func LoginStateUpdater ¶
LoginStateUpdater updates client state after successful login. It validates platform, and after successful login, parses the access token from response and notifies the hub.
func RateLimit ¶
func RateLimit(cfg *RateLimitConfig) websocket.Middleware
RateLimit creates a rate limit middleware with a new store. Note: For proper cleanup, use RateLimitWithStore with Hub's WithClientDisconnectCallback.
func RateLimitWithStore ¶
func RateLimitWithStore(cfg *RateLimitConfig, store *RateLimiterStore) websocket.Middleware
RateLimitWithStore creates a rate limit middleware with custom store.
func RecoveryWithLogger ¶
func RecoveryWithLogger(logger websocket.Logger) websocket.Middleware
RecoveryWithLogger catches panics and returns an error response using the provided logger.
Types ¶
type RateLimitConfig ¶
type RateLimitConfig struct {
Default float64 // Default requests per second (0 = unlimited)
Methods map[string]float64 // Per-method limits (0 = unlimited)
}
RateLimitConfig configures rate limiting.
type RateLimiterStore ¶
type RateLimiterStore struct {
// contains filtered or unexported fields
}
RateLimiterStore manages per-client rate limiters.
func NewRateLimiterStore ¶
func NewRateLimiterStore() *RateLimiterStore
NewRateLimiterStore creates a new rate limiter store.
func (*RateLimiterStore) Remove ¶
func (s *RateLimiterStore) Remove(client *websocket.Client)
Remove removes all limiters for a client. Call this on client disconnect.