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

Posted

技术标签:

【中文标题】如何在 em-websocket 中广播或建立连接?【英文标题】:How to broadcast or make connection in em-websocket? 【发布时间】:2014-09-10 17:22:20 【问题描述】:

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

在他们的介绍中。 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 号)进行自己的通信。

【讨论】:

以上是关于如何在 em-websocket 中广播或建立连接?的主要内容,如果未能解决你的问题,请参考以下文章

在薄轨上安全地停止 em-websocket

如何在 WebSocket 聊天应用程序中跟踪用户(连接)

在 Rails 中使用 em-websocket 构建对讲系统的策略?

安装gem em-websocket失败

在Flink中广播HashMap

如何在 PySpark 中广播 RDD?