Есть клиент и сервер. Клиент отправляет JSON вот так:
writer := bufio.NewWriter(conn)
JSONmessage = []byte(`{"Name":"Alice","Body":"Hello","Time":1294706395881547000}`)
writer.Write(JSONmessage)
А сервер читает вот так:
for {
scanned := scanr.Scan()
if !scanned {
if err := scanr.Err(); err != nil {
log.Println(err, conn.RemoteAddr())
return err
}
}
currentMessage := ParseJSON(scanr.Bytes())
Проблема в том, что сервер не понимает, когда заканчиваются данные, переданные клиентом и ждёт до тех пор, пока клиент не закроет соединение либо пока буфер не переполнится. В случае со строками достаточно было передавать символ конца строки "\n", а что делать в случае с []byte - непонятно.