Следуя примеру из em-websocket
gem, я только что создал простой эхо-сервер, работающий с каркасом Sinatra. Проблема в том, что я не понимаю, как использовать какой-либо формат для отправки сообщения вместо простого текста. На данный момент код выглядит так:
EventMachine::WebSocket.start(host: '0.0.0.0', port: 8080, debug: true) do |ws|
ws.onmessage { |msg|
ws.send msg
}
...
}
Я хотел бы отправить сообщение в каком-нибудь формате, например, Hash:
ws.onmessage { |msg|
hash_message = {}
hash_message[:time] = Time.now.strftime("%T")
hash_message[:text] = msg
ws.send hash_message
}
А на стороне клиента, используйте его для создания красивого окна сообщения с временными и текстовыми элементами (время в данном случае является лишь примером).
например, используйте
ws.onmessage = (evt) ->
write_message(evt.data.time,
evt.data.text)
вместо
ws.onmessage = (evt) ->
write_message evt.data