neko/internal/types/session.go

47 lines
982 B
Go
Raw Normal View History

package types
2020-11-02 06:39:12 +13:00
import "net/http"
type Session interface {
ID() string
Name() string
Admin() bool
Muted() bool
IsHost() bool
Connected() bool
2020-11-02 04:09:48 +13:00
Address() string
SetMuted(muted bool)
2020-11-01 09:46:29 +13:00
SetName(name string)
SetSocket(socket WebSocket)
SetPeer(peer Peer)
2020-11-02 09:03:25 +13:00
SetConnected(connected bool)
2020-11-02 04:09:48 +13:00
Disconnect(reason string) error
Send(v interface{}) error
SignalAnswer(sdp string) error
}
type SessionManager interface {
2020-11-02 08:23:09 +13:00
New(id string, admin bool) Session
2020-11-02 04:09:48 +13:00
Get(id string) (Session, bool)
Has(id string) bool
Destroy(id string) error
HasHost() bool
2020-11-02 04:09:48 +13:00
SetHost(host Session)
GetHost() Session
ClearHost()
2020-11-02 04:09:48 +13:00
Admins() []Session
Members() []Session
Broadcast(v interface{}, exclude interface{}) error
2020-11-02 04:09:48 +13:00
2020-11-01 11:03:37 +13:00
OnHost(listener func(session Session))
OnHostCleared(listener func(session Session))
OnCreated(listener func(session Session))
OnConnected(listener func(session Session))
2020-11-02 08:53:25 +13:00
OnDisconnected(listener func(session Session))
2020-11-02 06:39:12 +13:00
// auth
2020-11-02 08:23:09 +13:00
Authenticate(r *http.Request) (Session, error)
}