func echoHandler(s sockjs.Session) { for { m := s.Receive() if m == nil { break } s.Send(m) } }
func connHandler(s sockjs.Session) { c, err := DialTLS("imap.gmail.com", nil) if err != nil { log.Fatal(err) s.Send(err2byte(err)) s.End() return } go func() { for { r, err := c.Receive() if err != nil { s.Send(err2byte(err)) continue } b, err := json.Marshal(r) if err != nil { s.Send(err2byte(err)) continue } s.Send(b) } }() for { m := s.Receive() if m == nil { break } cmd := &Command{} err := json.Unmarshal(m, cmd) fmt.Printf("%s\n%v\n", m, cmd) if err != nil { s.Send(err2byte(err)) continue } c.Send(cmd) } }