Я использую пример приложения чата из gorilla websockets, но у меня возникает проблема, иногда, когда бэкэнд должен отправить два разных сообщения клиенту, они отправляются только в одном событии сообщения, это плохо для меня, потому что JSON .parse не сможет проанализировать 2 jsons из одной строки. Я могу сделать разделение по новой строке и получать каждые json из сообщения, но я предпочитаю этого не делать.
Если я ставлю тайм-аут на бэкэнд, все работает.
Могу ли я что-то сделать, чтобы предотвратить это? Если нет, не могли бы вы объяснить, почему?
Это пример чата: https://github.com/gorilla/websocket/tree/master/examples/chat
Это мой код, на котором я передаю 2 сообщения:
if err == nil {
c.SendMessageWithOrders(DB)
data := models.EventSuccess{
Event: utils.EventOrdersCreateSuccess,
}
toReturnBytes, err := json.Marshal(data)
if err == nil {
toReturn := BroadcastOne{
ID: c.ID,
Message: toReturnBytes,
}
NewHub.broadcastOne <- &toReturn
}
}
c.SendMessageWithOrders(DB)
делает NewHub.broadcastOne <- &toReturn
с другими данными