使用Kemal通过websocket将数据发送给体面的用户

时间:2017-07-02 13:57:05

标签: websocket kemal

如何将数据数据发送给通过websockets连接的体面用户?我知道, Websocket连接产生上下文,但是如何根据上下文(env)过滤一个像样的套接字连接以便只向一个(或一些)连接的用户发送数据?

`date`

必须套接字包含房间还是需要SOCKETS作为哈希?

1 个答案:

答案 0 :(得分:0)

您可以将套接字存储为哈希并为您的客户端提供ID,然后您可以发送最近客户端的已保存套接字。

我的意思是

SOCKETS = {} of String => HTTP::WebSocket

socket.on_message do |message|
  j = JSON.parse(message)
  case j["type"]
  when "login"
    user_id = j["id"].to_s
    SOCKETS[user_id] = socket
  when "whisper"
    to = j["to"].to_s
    from = j["from"]
    user = SOCKETS[to].send("#{from} is whispering you!")
end
这样的事情。