Пример #1
0
func (cs *ChatServer) ReadMessage(conn net.Conn) (*gochat.ChatMessage, error) {
	buf := make([]byte, 1024)
	readBytes, err := bufio.NewReader(conn).Read(buf)
	if err != nil {
		return nil, err
	}
	var receivedMsg = new(gochat.ChatMessage)
	if err := proto.Unmarshal(buf[:readBytes], receivedMsg); err != nil {
		return nil, err
	}
	log.Printf("Read: %v from %v on %v\n", receivedMsg.GetContent(), receivedMsg.GetSender(), conn.RemoteAddr())
	return receivedMsg, nil
}