2014-09-10 49 views
2

我正在使用em-websocket爲客戶(可能有2個或更多的用戶)進行通信。如何在em-websocket中進行廣播或連接?

在他們的介紹。 https://github.com/igrigorik/em-websocket

我想修改他們的簡單回聲服務器的例子來達到我的目的。

但在他們的例子中,handshake.path輸出總是顯示「/」。

我無法知道客戶端來自哪裏。

是否有任何解決方案可以知道客戶端來源地並向他們發送廣播消息?

回答

1

我在他們的例子中找到了答案。

https://github.com/igrigorik/em-websocket/blob/master/examples/multicast.rb

EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080, :debug => true) do |ws| 
ws.onopen { 
    sid = @channel.subscribe { |msg| ws.send msg } 
    @channel.push "#{sid} connected!" 
ws.onmessage { |msg| 
    @channel.push "<#{sid}>: #{msg}" 
} 
ws.onclose { 
    @channel.unsubscribe(sid) 
} 
} 
end 

但我仍然有一個問題:我如何才能將消息發送到指定的客戶呢?

(例如)兩個客戶(1號和2號)進行自己的通信。