Понял. У меня на самом деле с камня нормально данные отправляются. С получением какие-то сложности. Отправляю с сервера; на Go написано это дело. Используя mosquito как брокер. На том же сервере. Иногда работает, иногда нет. Хз, короче.
Ну с этим все ок. Поэтому ищи проблему у себя.
А ну и ты получаешь не строку 0 терминированную, а данные n длинной - их нельзя рассматривать как строку , добавь в конец 0 - в этом может дело?
Работает/не работает - будет зависеть от фазы луны от состояния входящего буфера, там могут быть нули - работает , а потом приходит меньшая "строка" - уже не работает.