diff --git a/sessionManager.go b/sessionManager.go index cb267eb..933b820 100644 --- a/sessionManager.go +++ b/sessionManager.go @@ -2,7 +2,6 @@ package main import ( "log" - "time" ) //openIDSession for a given openID @@ -81,7 +80,7 @@ func (m *SessionManager) createSession(openID string) openIDSession { s := openIDSession{} s.openID = openID s.count = 0 - s.jobs = make(chan InWechatMsg, 200) + s.jobs = make(chan InWechatMsg, 50) s.data, _ = getCurrentSesssion(openID) //either load or create new m.sessions[openID] = s //register it to memory return s @@ -129,15 +128,9 @@ func (m *SessionManager) startJob(openID string) { for hasJob { select { case v := <-m.sessions[openID].jobs: - if v.header.FromUserName != openID { - log.Println("Error: Weird Message below ...") - log.Println(v) - log.Fatalf("Error: worker thread for %s, see different id=%s \n", openID, v.header.FromUserName) - } - log.Println(" Processing job..") - log.Println(v) - time.Sleep(5 * time.Second) - kfSendTxt(openID, "Job Processed "+v.body.(TextMsg).Content) + m.checkOpenID(openID, v) + s := m.sessions[openID] + s.data.incomingMsg(v) //<=== main logic for processing each incoming message jobFinished.consumed++ default: hasJob = false @@ -146,3 +139,11 @@ func (m *SessionManager) startJob(openID string) { m.done <- jobFinished //notify parent that we have done return } + +func (m *SessionManager) checkOpenID(openID string, v InWechatMsg) { + if v.header.FromUserName != openID { + log.Println("Error: Weird Message below ...") + log.Println(v) + log.Fatalf("Error: worker thread for %s, see different id=%s \n", openID, v.header.FromUserName) + } +}