Archived
2
0

progress on server refactor

This commit is contained in:
Craig
2020-01-20 16:22:24 +00:00
parent 78af798d68
commit d497806443
13 changed files with 436 additions and 51 deletions

View File

@ -135,6 +135,30 @@ func (m *SessionManager) SetName(id string, name string) (bool, error) {
return false, fmt.Errorf("invalid session id %s", id)
}
func (m *SessionManager) Mute(id string) error {
session, ok := m.members[id]
if ok {
session.Muted = true
}
return nil
}
func (m *SessionManager) Unmute(id string) error {
session, ok := m.members[id]
if ok {
session.Muted = false
}
return nil
}
func (m *SessionManager) Kick(id string, v interface{}) error {
session, ok := m.members[id]
if ok {
return session.Kick(v)
}
return nil
}
func (m *SessionManager) Clear() error {
return nil
}

View File

@ -11,12 +11,21 @@ type Session struct {
ID string `json:"id"`
Name string `json:"username"`
Admin bool `json:"admin"`
Muted bool `json:"-"`
connected bool
socket *websocket.Conn
peer *webrtc.PeerConnection
mu sync.Mutex
}
func (session *Session) RemoteAddr() *string {
if session.socket != nil {
address := session.socket.RemoteAddr().String()
return &address
}
return nil
}
// TODO: write to peer data channel
func (session *Session) Write(v interface{}) error {
session.mu.Lock()
@ -24,6 +33,14 @@ func (session *Session) Write(v interface{}) error {
return nil
}
func (session *Session) Kick(v interface{}) error {
if err := session.Send(v); err != nil {
return err
}
return session.destroy()
}
func (session *Session) Send(v interface{}) error {
session.mu.Lock()
defer session.mu.Unlock()