按照em-websocket
gem 中的示例,我刚刚创建了使用 Sinatra 框架运行的简单 echo-server。问题是我不明白如何使用某种格式而不是纯文本来发送消息。目前,代码如下所示:
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