Example #1
0
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)
	}
}