diff --git a/api/helper.go b/api/helper.go index c399f18..89b4451 100644 --- a/api/helper.go +++ b/api/helper.go @@ -15,5 +15,5 @@ type Session struct { lastInteractedPartyIsA bool } -var openSessions = make(map[string]Session) +var openSessions = make(map[string]*Session) var sessionsMu sync.RWMutex diff --git a/api/http_handler.go b/api/http_handler.go index 51e2c5d..1a2dffe 100644 --- a/api/http_handler.go +++ b/api/http_handler.go @@ -46,7 +46,7 @@ func createSession(w http.ResponseWriter, r *http.Request) { } sessionsMu.Lock() - openSessions[session.id] = session + openSessions[session.id] = &session sessionsMu.Unlock() fmt.Fprintf(w, diff --git a/api/ws_handler.go b/api/ws_handler.go index e7a78a7..203b182 100644 --- a/api/ws_handler.go +++ b/api/ws_handler.go @@ -43,18 +43,11 @@ func websocketSignaler(conn *websocket.Conn, partyIsA bool, sessionId string) { } } - sessionsMu.Lock() - openSessions[openSession.id] = openSession - sessionsMu.Unlock() - for { msgType, msg, err := conn.ReadMessage() if err != nil { break } - sessionsMu.RLock() - openSession, ok := openSessions[sessionId] - sessionsMu.RUnlock() if !ok { // conn.WriteMessage(1, "{Session not found or something}")