Documentation ¶
Index ¶
- func Broadcast(channel string, event Event, clients []Client) error
- func ChannelAuthMethods(ch ImplChannel) []string
- func ClientJS() []byte
- func ErrMissingServerHandler(chName, eventName string) error
- type Auth
- type AuthChallenge
- type AuthPass
- type BasicAuth
- type ChannelBroadcastUserJoinLeft
- type Client
- type ClientContext
- type ClientContextMap
- func (cc *ClientContextMap) Get(key string) interface{}
- func (cc *ClientContextMap) GetRawAuth() *Auth
- func (cc *ClientContextMap) GetRooms() []*Room
- func (cc *ClientContextMap) GetState() interface{}
- func (cc *ClientContextMap) Has(key string) bool
- func (cc *ClientContextMap) Set(key string, value interface{})
- type ClientRoomEvent
- type ClientSocket
- type CodecSerializer
- type ConnManager
- type Context
- type DefaultContext
- type Event
- type EventCheckReceivedFields
- type EventCheckSendFields
- type EventHandler
- type EventMessage
- type EventMessageToSend
- type ImplChannel
- type ImplChannelBasicAuth
- type ImplChannelConnected
- type ImplChannelDisconnected
- type ImplChannelWithUserJoin
- type ImplChannelWithUserLeft
- type ImplConnManager
- type ImplRoomManager
- type JsonSerializer
- type MsgPackSerializer
- type Room
- type RoomCreate
- type RoomCreateRequest
- type RoomJoin
- type RoomJoinRequest
- type RoomLeft
- type RoomLeftRequest
- type RoomManager
- func (rm *RoomManager) BroadcastRoomEvent(clients []Client, event ServerRoomEvent) error
- func (rm *RoomManager) Create(id string, public bool) (*Room, error)
- func (rm *RoomManager) MultiRoomMode(b bool)
- func (rm *RoomManager) OnRoomEvent(client Client, event ClientRoomEvent) error
- func (rm *RoomManager) Room(id string) *Room
- func (rm *RoomManager) RoomClientQuit(client Client) error
- func (rm *RoomManager) SendPublicRooms(client Client) error
- func (rm *RoomManager) SendRoomEvent(client Client, event ServerRoomEvent) error
- func (rm *RoomManager) SetRoomsPerUserLimit(n int)
- type Serializer
- type Server
- type ServerRoomEvent
- type ServerSocket
- func (s *ServerSocket) AddClient(c Client)
- func (s *ServerSocket) CheckAuth(ctx Context, client *ClientSocket) error
- func (s *ServerSocket) Close(timeout time.Duration) error
- func (s *ServerSocket) Codec() *CodecSerializer
- func (s *ServerSocket) CustomFiberApp(app *fiber.App)
- func (s *ServerSocket) GetClient(id uint64) Client
- func (s *ServerSocket) GetClients(exclude ...uint64) []Client
- func (s *ServerSocket) ProcessEvent(ctx Context, rawEvent []byte) error
- func (s *ServerSocket) ProcessEventAuth(ctx Context, chAuth ImplChannel, rawEvent []byte) error
- func (s *ServerSocket) Register(ch ImplChannel) error
- func (s *ServerSocket) RegisterStatic(path, dir string)
- func (s *ServerSocket) RemoveClient(c Client)
- func (s *ServerSocket) RevokeAuth(ctx Context, client *ClientSocket) error
- func (s *ServerSocket) StartWS(wsPath string, port int) error
- func (s *ServerSocket) StartWSS(wsPath string, port int, certFile, keyFile string) error
- type StateManager
- type TestableChannel
- type UserEvent
- type UserJoin
- type UserLeft
- type UserState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChannelAuthMethods ¶ added in v0.6.0
func ChannelAuthMethods(ch ImplChannel) []string
func ErrMissingServerHandler ¶
Types ¶
type Auth ¶ added in v0.6.0
type Auth struct { Id string `json:"id"` Data interface{} `json:"data"` }
type AuthChallenge ¶ added in v0.6.0
type AuthChallenge struct {
Methods []string `json:"methods"`
}
func (*AuthChallenge) GetEventName ¶ added in v0.6.0
func (*AuthChallenge) GetEventName() string
func (*AuthChallenge) ProtocolAlias ¶ added in v0.6.0
func (*AuthChallenge) ProtocolAlias() string
type AuthPass ¶ added in v0.6.0
type AuthPass struct {
Id string `json:"id"`
}
func (*AuthPass) GetEventName ¶ added in v0.6.0
func (*AuthPass) ProtocolAlias ¶ added in v0.6.0
type BasicAuth ¶ added in v0.6.0
func (*BasicAuth) GetEventName ¶ added in v0.6.0
func (*BasicAuth) ProtocolAlias ¶ added in v0.6.0
type ChannelBroadcastUserJoinLeft ¶ added in v0.6.0
type ChannelBroadcastUserJoinLeft struct{}
type ClientContext ¶ added in v0.6.0
type ClientContextMap ¶ added in v0.6.0
type ClientContextMap struct {
// contains filtered or unexported fields
}
func (*ClientContextMap) Get ¶ added in v0.6.0
func (cc *ClientContextMap) Get(key string) interface{}
func (*ClientContextMap) GetRawAuth ¶ added in v0.6.0
func (cc *ClientContextMap) GetRawAuth() *Auth
func (*ClientContextMap) GetRooms ¶ added in v0.6.5
func (cc *ClientContextMap) GetRooms() []*Room
func (*ClientContextMap) GetState ¶ added in v0.6.0
func (cc *ClientContextMap) GetState() interface{}
func (*ClientContextMap) Has ¶ added in v0.6.0
func (cc *ClientContextMap) Has(key string) bool
func (*ClientContextMap) Set ¶ added in v0.6.0
func (cc *ClientContextMap) Set(key string, value interface{})
type ClientRoomEvent ¶ added in v0.6.5
type ClientRoomEvent interface { Event ClientRoomEvent() }
type ClientSocket ¶ added in v0.1.4
type ClientSocket struct { ClientContextMap Server *ServerSocket Conn *websocket.Conn WriteMx sync.Mutex // contains filtered or unexported fields }
func (*ClientSocket) Close ¶ added in v0.1.4
func (c *ClientSocket) Close() error
func (*ClientSocket) Closed ¶ added in v0.1.4
func (c *ClientSocket) Closed() bool
func (*ClientSocket) GetId ¶ added in v0.1.4
func (c *ClientSocket) GetId() uint64
func (*ClientSocket) Send ¶ added in v0.1.4
func (c *ClientSocket) Send(channel string, event Event) error
func (*ClientSocket) SendJSON ¶ added in v0.1.4
func (c *ClientSocket) SendJSON(v interface{}) error
type CodecSerializer ¶ added in v0.3.0
type CodecSerializer struct {
// contains filtered or unexported fields
}
func NewCodecSerializer ¶ added in v0.3.0
func NewCodecSerializer(handle codec.Handle) *CodecSerializer
func (*CodecSerializer) Decode ¶ added in v0.3.0
func (cs *CodecSerializer) Decode(data []byte, v interface{}) error
func (*CodecSerializer) Encode ¶ added in v0.3.0
func (cs *CodecSerializer) Encode(v interface{}) ([]byte, error)
type ConnManager ¶ added in v0.6.0
type ConnManager struct {
// contains filtered or unexported fields
}
func (*ConnManager) GetAuthorizedClients ¶ added in v0.6.0
func (cm *ConnManager) GetAuthorizedClients(exceptClientIds ...uint64) []Client
func (*ConnManager) GetAuthorizedUserClients ¶ added in v0.6.0
func (cm *ConnManager) GetAuthorizedUserClients(exceptUserIds ...string) []Client
func (*ConnManager) GetAuthorizedUserIds ¶ added in v0.6.0
func (cm *ConnManager) GetAuthorizedUserIds(exceptIds ...string) []string
func (*ConnManager) IsUserConnected ¶ added in v0.6.0
func (cm *ConnManager) IsUserConnected(id string) bool
type DefaultContext ¶
func NewDefaultContext ¶
func NewDefaultContext(ctx context.Context, server Server, client Client) *DefaultContext
func NewDefaultContextFromBackground ¶ added in v0.1.4
func NewDefaultContextFromBackground(server Server, client Client) *DefaultContext
func (*DefaultContext) GetClient ¶
func (ctx *DefaultContext) GetClient() Client
func (*DefaultContext) GetServer ¶
func (ctx *DefaultContext) GetServer() Server
type EventCheckReceivedFields ¶ added in v0.2.1
type EventCheckSendFields ¶ added in v0.2.1
type EventHandler ¶
type EventHandler func(Context, *EventMessage) error
type EventMessage ¶ added in v0.1.4
type EventMessageToSend ¶ added in v0.6.0
type ImplChannel ¶
type ImplChannel interface { Name() string Alias() string Bind(Server) error Route(Context, *EventMessage) error GetServer() Server SetReceiver(ImplChannel) error }
type ImplChannelBasicAuth ¶ added in v0.6.0
type ImplChannelConnected ¶
type ImplChannelDisconnected ¶
type ImplChannelWithUserJoin ¶ added in v0.6.0
type ImplChannelWithUserJoin interface {
// contains filtered or unexported methods
}
type ImplChannelWithUserLeft ¶ added in v0.6.0
type ImplChannelWithUserLeft interface {
// contains filtered or unexported methods
}
type ImplConnManager ¶ added in v0.6.0
type ImplRoomManager ¶ added in v0.6.5
type ImplRoomManager interface { OnRoomEvent(Client, ClientRoomEvent) error SendRoomEvent(Client, ServerRoomEvent) error BroadcastRoomEvent([]Client, ServerRoomEvent) error SendPublicRooms(Client) error RoomClientQuit(Client) error // contains filtered or unexported methods }
type JsonSerializer ¶
type JsonSerializer struct{}
func (*JsonSerializer) Deserialize ¶
func (s *JsonSerializer) Deserialize(data []byte, v interface{}) error
func (*JsonSerializer) Serialize ¶
func (s *JsonSerializer) Serialize(v interface{}) ([]byte, error)
type MsgPackSerializer ¶ added in v0.3.0
type MsgPackSerializer struct{}
func (*MsgPackSerializer) Deserialize ¶ added in v0.3.0
func (s *MsgPackSerializer) Deserialize(data []byte, v interface{}) error
func (*MsgPackSerializer) Serialize ¶ added in v0.3.0
func (s *MsgPackSerializer) Serialize(v interface{}) ([]byte, error)
type RoomCreate ¶ added in v0.6.5
type RoomCreate struct {
Room string `json:"room"`
}
func (*RoomCreate) GetEventName ¶ added in v0.6.5
func (*RoomCreate) GetEventName() string
func (*RoomCreate) ProtocolAlias ¶ added in v0.6.5
func (*RoomCreate) ProtocolAlias() string
func (*RoomCreate) ServerRoomEvent ¶ added in v0.6.5
func (*RoomCreate) ServerRoomEvent()
type RoomCreateRequest ¶ added in v0.6.5
func (*RoomCreateRequest) ClientRoomEvent ¶ added in v0.6.5
func (*RoomCreateRequest) ClientRoomEvent()
func (*RoomCreateRequest) GetEventName ¶ added in v0.6.5
func (*RoomCreateRequest) GetEventName() string
func (*RoomCreateRequest) ProtocolAlias ¶ added in v0.6.5
func (*RoomCreateRequest) ProtocolAlias() string
type RoomJoin ¶ added in v0.6.5
func (*RoomJoin) GetEventName ¶ added in v0.6.5
func (*RoomJoin) ProtocolAlias ¶ added in v0.6.5
func (*RoomJoin) ServerRoomEvent ¶ added in v0.6.5
func (*RoomJoin) ServerRoomEvent()
type RoomJoinRequest ¶ added in v0.6.5
type RoomJoinRequest struct {
Room string `json:"room"`
}
func (*RoomJoinRequest) ClientRoomEvent ¶ added in v0.6.5
func (*RoomJoinRequest) ClientRoomEvent()
func (*RoomJoinRequest) GetEventName ¶ added in v0.6.5
func (*RoomJoinRequest) GetEventName() string
func (*RoomJoinRequest) ProtocolAlias ¶ added in v0.6.5
func (*RoomJoinRequest) ProtocolAlias() string
type RoomLeft ¶ added in v0.6.5
func (*RoomLeft) GetEventName ¶ added in v0.6.5
func (*RoomLeft) ProtocolAlias ¶ added in v0.6.5
func (*RoomLeft) ServerRoomEvent ¶ added in v0.6.5
func (*RoomLeft) ServerRoomEvent()
type RoomLeftRequest ¶ added in v0.6.5
type RoomLeftRequest struct {
Room string `json:"room"`
}
func (*RoomLeftRequest) ClientRoomEvent ¶ added in v0.6.5
func (*RoomLeftRequest) ClientRoomEvent()
func (*RoomLeftRequest) GetEventName ¶ added in v0.6.5
func (*RoomLeftRequest) GetEventName() string
func (*RoomLeftRequest) ProtocolAlias ¶ added in v0.6.5
func (*RoomLeftRequest) ProtocolAlias() string
type RoomManager ¶ added in v0.6.5
func (*RoomManager) BroadcastRoomEvent ¶ added in v0.6.5
func (rm *RoomManager) BroadcastRoomEvent(clients []Client, event ServerRoomEvent) error
func (*RoomManager) Create ¶ added in v0.6.5
func (rm *RoomManager) Create(id string, public bool) (*Room, error)
func (*RoomManager) MultiRoomMode ¶ added in v0.6.5
func (rm *RoomManager) MultiRoomMode(b bool)
func (*RoomManager) OnRoomEvent ¶ added in v0.6.5
func (rm *RoomManager) OnRoomEvent(client Client, event ClientRoomEvent) error
func (*RoomManager) Room ¶ added in v0.6.5
func (rm *RoomManager) Room(id string) *Room
func (*RoomManager) RoomClientQuit ¶ added in v0.6.5
func (rm *RoomManager) RoomClientQuit(client Client) error
func (*RoomManager) SendPublicRooms ¶ added in v0.6.5
func (rm *RoomManager) SendPublicRooms(client Client) error
func (*RoomManager) SendRoomEvent ¶ added in v0.6.5
func (rm *RoomManager) SendRoomEvent(client Client, event ServerRoomEvent) error
func (*RoomManager) SetRoomsPerUserLimit ¶ added in v0.6.5
func (rm *RoomManager) SetRoomsPerUserLimit(n int)
type Serializer ¶
type ServerRoomEvent ¶ added in v0.6.5
type ServerRoomEvent interface { Event ServerRoomEvent() }
type ServerSocket ¶ added in v0.1.4
type ServerSocket struct { Conn net.Conn RegisteredChannels map[string]ImplChannel ClientAutoInc uint64 Clients map[uint64]Client ClientsMx sync.RWMutex App *fiber.App // contains filtered or unexported fields }
func NewServer ¶
func NewServer() *ServerSocket
func NewServerWithCustomCodec ¶ added in v0.6.0
func NewServerWithCustomCodec(codec codec.Handle) *ServerSocket
func (*ServerSocket) AddClient ¶ added in v0.1.4
func (s *ServerSocket) AddClient(c Client)
func (*ServerSocket) CheckAuth ¶ added in v0.6.0
func (s *ServerSocket) CheckAuth(ctx Context, client *ClientSocket) error
func (*ServerSocket) Close ¶ added in v0.1.4
func (s *ServerSocket) Close(timeout time.Duration) error
func (*ServerSocket) Codec ¶ added in v0.3.0
func (s *ServerSocket) Codec() *CodecSerializer
func (*ServerSocket) CustomFiberApp ¶ added in v0.5.0
func (s *ServerSocket) CustomFiberApp(app *fiber.App)
func (*ServerSocket) GetClient ¶ added in v0.1.4
func (s *ServerSocket) GetClient(id uint64) Client
func (*ServerSocket) GetClients ¶ added in v0.1.4
func (s *ServerSocket) GetClients(exclude ...uint64) []Client
func (*ServerSocket) ProcessEvent ¶ added in v0.1.4
func (s *ServerSocket) ProcessEvent(ctx Context, rawEvent []byte) error
func (*ServerSocket) ProcessEventAuth ¶ added in v0.6.0
func (s *ServerSocket) ProcessEventAuth(ctx Context, chAuth ImplChannel, rawEvent []byte) error
func (*ServerSocket) Register ¶ added in v0.1.4
func (s *ServerSocket) Register(ch ImplChannel) error
func (*ServerSocket) RegisterStatic ¶ added in v0.3.0
func (s *ServerSocket) RegisterStatic(path, dir string)
func (*ServerSocket) RemoveClient ¶ added in v0.1.4
func (s *ServerSocket) RemoveClient(c Client)
func (*ServerSocket) RevokeAuth ¶ added in v0.6.0
func (s *ServerSocket) RevokeAuth(ctx Context, client *ClientSocket) error
type StateManager ¶ added in v0.6.0
type StateManager[T any] struct{}
func (*StateManager[T]) ClientState ¶ added in v0.6.0
func (sm *StateManager[T]) ClientState(c Client) *UserState[T]
func (*StateManager[T]) SetClientState ¶ added in v0.6.0
func (sm *StateManager[T]) SetClientState(c Client, state T)
type TestableChannel ¶ added in v0.1.4
type TestableChannel interface { ImplChannel Given(ImplChannel) Expect(TestableChannel) }
type UserJoin ¶ added in v0.6.0
type UserJoin struct {
Id string `json:"id"`
}
func (*UserJoin) GetEventName ¶ added in v0.6.0
func (*UserJoin) ProtocolAlias ¶ added in v0.6.0
func (*UserJoin) SetUint64Id ¶ added in v0.6.0
type UserLeft ¶ added in v0.6.0
type UserLeft struct {
Id string `json:"id"`
}
func (*UserLeft) GetEventName ¶ added in v0.6.0
func (*UserLeft) ProtocolAlias ¶ added in v0.6.0
func (*UserLeft) SetUint64Id ¶ added in v0.6.0
Source Files ¶
Click to show internal directories.
Click to hide internal directories.