gemの例に従ってem-websocket
、Sinatraフレームワークで実行される単純なエコーサーバーを作成しました。問題は、プレーンテキストの代わりに何らかの形式を使用してメッセージを送信する方法がわからないことです。今のところ、コードは次のようになります。
EventMachine::WebSocket.start(host: '0.0.0.0', port: 8080, debug: true) do |ws|
ws.onmessage { |msg|
ws.send msg
}
...
}
ハッシュなどの形式でメッセージを送信したいと思います。
ws.onmessage { |msg|
hash_message = {}
hash_message[:time] = Time.now.strftime("%T")
hash_message[:text] = msg
ws.send hash_message
}
また、クライアント側では、時間とテキストのdivを含む素敵なメッセージボックスを作成するために使用します(この場合、時間は単なる例です)。例:
ws.onmessage = (evt) ->
write_message(evt.data.time,
evt.data.text)
それ以外の
ws.onmessage = (evt) ->
write_message evt.data