2017-07-02 13 views
0

WebSocket経由で接続されたまともなユーザーにデータデータを送信するにはどうすればよいですか?私は知っている、 Websocket接続はコンテキストを生成するが、コンテキスト(env)に応じて1人(またはいくつかの)接続しているユーザにデータを送信するための適切なソケット接続をフィルタリングするにはどうすればよいですか?websocket経由でKemalで適切なユーザーにデータを送信

SOCKETS = [] of HTTP::WebSocket 
ws "/chat" do |socket,env| 
    room = env.params.query["room"] 
    SOCKETS << socket 
    socket.on_message do |message| 
    SOCKETS.each { |socket| socket.send message} 
    end 
    socket.on_close do 
    SOCKETS.delete socket 
    end 
end 

ソケットが必要ですか、またはソケットがハッシュになる必要がありますか?

+0

問題を解決するための努力を示します。 – SteveFest

答えて

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 

というようなものを意味します。

関連する問題