Browse Source

Make sure to send session close messages to subscriptions too to notify both ways.

pull/186/head
Simon Eisenmann 10 years ago
parent
commit
bf516b5423
  1. 5
      src/app/spreed-webrtc-server/session.go

5
src/app/spreed-webrtc-server/session.go

@ -86,16 +86,13 @@ func (s *Session) authenticated() (authenticated bool) {
} }
func (s *Session) Subscribe(session *Session) { func (s *Session) Subscribe(session *Session) {
s.mutex.Lock() s.mutex.Lock()
s.subscriptions[session.Id] = session s.subscriptions[session.Id] = session
s.mutex.Unlock() s.mutex.Unlock()
session.AddSubscriber(s) session.AddSubscriber(s)
} }
func (s *Session) Unsubscribe(id string) { func (s *Session) Unsubscribe(id string) {
s.mutex.Lock() s.mutex.Lock()
if session, ok := s.subscriptions[id]; ok { if session, ok := s.subscriptions[id]; ok {
delete(s.subscriptions, id) delete(s.subscriptions, id)
@ -104,7 +101,6 @@ func (s *Session) Unsubscribe(id string) {
} else { } else {
s.mutex.Unlock() s.mutex.Unlock()
} }
} }
func (s *Session) AddSubscriber(session *Session) { func (s *Session) AddSubscriber(session *Session) {
@ -236,6 +232,7 @@ func (s *Session) Close() {
for _, session := range s.subscriptions { for _, session := range s.subscriptions {
session.RemoveSubscriber(s.Id) session.RemoveSubscriber(s.Id)
s.Unicaster.Unicast(session.Id, outgoing)
} }
s.SessionManager.DestroySession(s.Id, s.userid) s.SessionManager.DestroySession(s.Id, s.userid)

Loading…
Cancel
Save