code: func (c *SocketConnection) Handle() {
  
  	done := make(chan bool)
  
  	go func() {
  		for {
  			msg, err := newMessage(bufio.NewReaderSize(c, ReadBufferSize), true)
  
  			if err != nil {
  				c.err <- err
  				done <- true
  				break
  			}
  
  			c.m <- msg
  		}
  	}()
  
  	<-done
  
  	// Closing the connection now as there's nothing left to do ...
  	c.Close()
  }
docs: // Handle - Will handle new messages and close connection when there are no messages left to process