Documentation ¶
Overview ¶
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Index ¶
- func OnMessage(s *Service, connID uuid.UUID, message *Message, logger util.Logger) error
- func ReadSocketLoop(connID uuid.UUID, sock *websocket.Conn, onMessage func(m *Message) error, ...) error
- type Channel
- type ConnectEvent
- type Connection
- type Handler
- type Message
- type OnlineUpdate
- type Service
- func (s *Service) ChannelList(params *filter.Params) []string
- func (s *Service) Close()
- func (s *Service) Count() int
- func (s *Service) Disconnect(connID uuid.UUID, logger util.Logger) (bool, error)
- func (s *Service) GetAllMembers(key string) []*Connection
- func (s *Service) GetByID(id uuid.UUID, logger util.Logger) *Status
- func (s *Service) GetChannel(ch string) *Channel
- func (s *Service) GetConnection(id uuid.UUID) *Connection
- func (s *Service) GetOnline(key string) []uuid.UUID
- func (s *Service) Join(connID uuid.UUID, ch string, logger util.Logger) (bool, error)
- func (s *Service) Leave(connID uuid.UUID, ch string, logger util.Logger) (bool, error)
- func (s *Service) ReadLoop(connID uuid.UUID, logger util.Logger) error
- func (s *Service) Register(profile *user.Profile, c *websocket.Conn, logger util.Logger) (*Connection, error)
- func (s *Service) RegisterTap(rc *fasthttp.RequestCtx, logger util.Logger) (uuid.UUID, error)
- func (s *Service) RemoveTap(connID uuid.UUID, logger util.Logger)
- func (s *Service) Status() ([]string, []*Connection, []uuid.UUID)
- func (s *Service) Upgrade(rc *fasthttp.RequestCtx, channel string, profile *user.Profile, ...) error
- func (s *Service) UserList(params *filter.Params) Statuses
- func (s *Service) WriteChannel(message *Message, logger util.Logger, except ...uuid.UUID) error
- func (s *Service) WriteMessage(connID uuid.UUID, message *Message, logger util.Logger) error
- func (s *Service) WriteTap(message *Message, logger util.Logger)
- type Status
- type Statuses
- type UpdateMemberParams
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ConnectEvent ¶
type ConnectEvent func(s *Service, conn *Connection, logger util.Logger) error
Function used to handle incoming connections.
type Connection ¶
type Connection struct { ID uuid.UUID `json:"id"` Profile *user.Profile `json:"profile,omitempty"` Accounts user.Accounts `json:"accounts,omitempty"` Svc string `json:"svc,omitempty"` ModelID *uuid.UUID `json:"modelID,omitempty"` Channels []string `json:"channels,omitempty"` // contains filtered or unexported fields }
Represents a user's WebSocket session.
func NewConnection ¶
func NewConnection(svc string, profile *user.Profile, accounts user.Accounts, socket *websocket.Conn) *Connection
Creates a new Connection.
func (*Connection) Read ¶
func (c *Connection) Read() ([]byte, error)
Reads bytes from this Connection, you should probably use a helper method.
func (*Connection) String ¶ added in v0.7.0
func (c *Connection) String() string
func (*Connection) ToStatus ¶
func (c *Connection) ToStatus() *Status
Transforms this Connection to a serializable Status object.
func (*Connection) Write ¶
func (c *Connection) Write(b []byte) error
Writes bytes to this Connection, you should probably use a helper method.
type Handler ¶
type Handler func(ctx context.Context, s *Service, conn *Connection, svc string, cmd string, param json.RawMessage, logger util.Logger) error
Function used to handle incoming messages.
type Message ¶
type Message struct { From *uuid.UUID `json:"from,omitempty"` Channel string `json:"channel,omitempty"` Cmd string `json:"cmd"` Param json.RawMessage `json:"param"` }
Common message struct for passing a service, command and parameter.
func NewMessage ¶
Constructor.
type OnlineUpdate ¶
Message for updates of a user's online status.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Manages all Connection objects.
func NewService ¶
func NewService(onOpen ConnectEvent, handler Handler, onClose ConnectEvent) *Service
Creates a new service with the provided handler functions.
func (*Service) ChannelList ¶
Returns an array of channels based on the parameters.
func (*Service) Disconnect ¶
Removes a Connection from this Service.
func (*Service) GetAllMembers ¶ added in v0.6.22
func (s *Service) GetAllMembers(key string) []*Connection
func (*Service) GetChannel ¶ added in v0.6.22
func (*Service) GetConnection ¶ added in v0.6.22
func (s *Service) GetConnection(id uuid.UUID) *Connection
func (*Service) Register ¶
func (s *Service) Register(profile *user.Profile, c *websocket.Conn, logger util.Logger) (*Connection, error)
Registers a new Connection for this Service using the provided user.Profile and websocket.Conn.
func (*Service) RegisterTap ¶ added in v0.7.0
func (*Service) WriteChannel ¶
func (*Service) WriteMessage ¶
type Status ¶
type Status struct { ID uuid.UUID `json:"id"` Username string `json:"username"` Channels []string `json:"channels"` }
Serializable representation of a Connection.