如何在em-websocket中广播或建立连接?

时间:2014-09-10 17:22:21

标签: ruby websocket em-websocket

我正在使用em-websocket为客户(可能有2个或更多用户)进行通信。

在他们的介绍中。 https://github.com/igrigorik/em-websocket

我想修改他们简单的echo服务器示例以实现我的目的。

但是在他们的例子中,handshake.path输出总是显示" /" 。

我不知道客户来自哪里。

是否有任何解决方案可以知道客户端源位置并向所有客户端发送广播消息?

1 个答案:

答案 0 :(得分: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

但我仍有问题:如何向指定客户发送消息?

(例如)两个客户(No.1和No.2)进行自己的沟通。