From fe67adf9658bc48038711481046a1932a342072a Mon Sep 17 00:00:00 2001 From: Simon Eisenmann Date: Mon, 16 Jun 2014 17:29:07 +0200 Subject: [PATCH] Added priority to sessions. --- doc/CHANNELING-API.txt | 12 ++++++++---- src/app/spreed-webrtc-server/channeling.go | 1 + src/app/spreed-webrtc-server/session.go | 13 +++++++++---- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/doc/CHANNELING-API.txt b/doc/CHANNELING-API.txt index 6716855e..65d28cc2 100644 --- a/doc/CHANNELING-API.txt +++ b/doc/CHANNELING-API.txt @@ -282,7 +282,8 @@ Additional types for session listing and notifications "Id": "7", "Userid": "u7", "Ua": "Chrome 28", - "Status": null + "Status": null, + "Prio": 100 } Note: The Userid field is only present if that session belongs to a known user. @@ -324,21 +325,24 @@ Additional types for session listing and notifications "Type": "Online", "Id": "1", "Ua": "Firefox 27", - "Status": {...} + "Status": {...}, + "Prio": 100 }, { "Type": "Online", "Id": "3", "Userid": "u3", "Ua": "Chrome 28", - "Status": {...} + "Status": {...}, + "Prio": 100 }, { "Type": "Online", "Id": "4", "Userid": "u4", "Ua": "Chrome 28", - "Status": {...} + "Status": {...}, + "Prio": 100 } ] } diff --git a/src/app/spreed-webrtc-server/channeling.go b/src/app/spreed-webrtc-server/channeling.go index 608c8e8c..d49e5300 100644 --- a/src/app/spreed-webrtc-server/channeling.go +++ b/src/app/spreed-webrtc-server/channeling.go @@ -72,6 +72,7 @@ type DataSession struct { Token string `json:",omitempty"` Version string `json:",omitempty"` Rev uint64 `json:",omitempty"` + Prio int `json:",omitempty"` Status interface{} } diff --git a/src/app/spreed-webrtc-server/session.go b/src/app/spreed-webrtc-server/session.go index 66b2c1cc..18b03c56 100644 --- a/src/app/spreed-webrtc-server/session.go +++ b/src/app/spreed-webrtc-server/session.go @@ -37,6 +37,7 @@ type Session struct { UpdateRev uint64 Status interface{} Nonce string + Prio int mutex sync.RWMutex userid string } @@ -44,8 +45,9 @@ type Session struct { func NewSession(id, sid string) *Session { return &Session{ - Id: id, - Sid: sid, + Id: id, + Sid: sid, + Prio: 100, } } @@ -59,12 +61,12 @@ func (s *Session) Update(update *SessionUpdate) uint64 { //fmt.Println("type update", key) switch key { - //case "Roomid": - // s.Roomid = update.Roomid case "Ua": s.Ua = update.Ua case "Status": s.Status = update.Status + case "Prio": + s.Prio = update.Prio } } @@ -174,6 +176,7 @@ func (s *Session) DataSessionJoined() *DataSession { Id: s.Id, Userid: s.userid, Ua: s.Ua, + Prio: s.Prio, } } @@ -189,6 +192,7 @@ func (s *Session) DataSessionStatus() *DataSession { Userid: s.userid, Status: s.Status, Rev: s.UpdateRev, + Prio: s.Prio, } } @@ -198,6 +202,7 @@ type SessionUpdate struct { Types []string Roomid string Ua string + Prio int Status interface{} }