From cf8236b93857bbfb2f70139971facf600f367817 Mon Sep 17 00:00:00 2001 From: Heikki Uljas Date: Wed, 13 Jan 2016 08:03:00 +0200 Subject: [PATCH 1/4] Added params to session --- melody.go | 1 + session.go | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/melody.go b/melody.go index acf8c45..0b636c5 100644 --- a/melody.go +++ b/melody.go @@ -80,6 +80,7 @@ func (m *Melody) HandleRequest(w http.ResponseWriter, r *http.Request) { session := &Session{ Request: r, + params: make(map[string]string), conn: conn, output: make(chan *envelope, m.Config.MessageBufferSize), melody: m, diff --git a/session.go b/session.go index d66d4b4..35dc223 100644 --- a/session.go +++ b/session.go @@ -10,6 +10,7 @@ import ( // A melody session. type Session struct { Request *http.Request + params map[string]string conn *websocket.Conn output chan *envelope melody *Melody @@ -117,3 +118,13 @@ func (s *Session) WriteBinary(msg []byte) { func (s *Session) Close() { s.writeMessage(&envelope{t: websocket.CloseMessage, msg: []byte{}}) } + +// Set session param +func (s *Session) SetParam(key string, value string) { + s.params[key] = value +} + +// Get session param +func (s *Session) GetParam(key string) string { + return s.params[key] +} From 46e534382930f44f2f3ab313c0328f2e600ba146 Mon Sep 17 00:00:00 2001 From: Heikki Uljas Date: Thu, 14 Jan 2016 14:55:49 +0200 Subject: [PATCH 2/4] Always call the connect handler before any message handler. --- melody.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/melody.go b/melody.go index 0b636c5..040a1e3 100644 --- a/melody.go +++ b/melody.go @@ -88,7 +88,7 @@ func (m *Melody) HandleRequest(w http.ResponseWriter, r *http.Request) { m.hub.register <- session - go m.connectHandler(session) + m.connectHandler(session) go session.writePump() From fad38bc8b3918203a842e30e76e5e0169cfc1fb9 Mon Sep 17 00:00:00 2001 From: Heikki Uljas Date: Fri, 18 Nov 2016 09:14:19 +0200 Subject: [PATCH 3/4] Changed session params to be generic type --- session.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/session.go b/session.go index 35dc223..1373bb8 100644 --- a/session.go +++ b/session.go @@ -10,7 +10,7 @@ import ( // A melody session. type Session struct { Request *http.Request - params map[string]string + params map[string]interface{} conn *websocket.Conn output chan *envelope melody *Melody @@ -120,11 +120,11 @@ func (s *Session) Close() { } // Set session param -func (s *Session) SetParam(key string, value string) { +func (s *Session) SetParam(key string, value interface{}) { s.params[key] = value } // Get session param -func (s *Session) GetParam(key string) string { +func (s *Session) GetParam(key string) (bool, interface{}) { return s.params[key] } From aae1ca83fcbd876be1adcc427d1d76e51bf44208 Mon Sep 17 00:00:00 2001 From: Heikki Uljas Date: Fri, 18 Nov 2016 09:19:02 +0200 Subject: [PATCH 4/4] Use generic params --- melody.go | 2 +- session.go | 12 +----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/melody.go b/melody.go index 040a1e3..0a502d4 100644 --- a/melody.go +++ b/melody.go @@ -80,7 +80,7 @@ func (m *Melody) HandleRequest(w http.ResponseWriter, r *http.Request) { session := &Session{ Request: r, - params: make(map[string]string), + Params: make(map[string]interface{}), conn: conn, output: make(chan *envelope, m.Config.MessageBufferSize), melody: m, diff --git a/session.go b/session.go index 1373bb8..f7fe15c 100644 --- a/session.go +++ b/session.go @@ -10,7 +10,7 @@ import ( // A melody session. type Session struct { Request *http.Request - params map[string]interface{} + Params map[string]interface{} conn *websocket.Conn output chan *envelope melody *Melody @@ -118,13 +118,3 @@ func (s *Session) WriteBinary(msg []byte) { func (s *Session) Close() { s.writeMessage(&envelope{t: websocket.CloseMessage, msg: []byte{}}) } - -// Set session param -func (s *Session) SetParam(key string, value interface{}) { - s.params[key] = value -} - -// Get session param -func (s *Session) GetParam(key string) (bool, interface{}) { - return s.params[key] -}