如何在Ruby中与线程通信?

问题描述 投票:0回答:1

我正在构建一个实时游戏,主要基于聊天,我需要同时运行许多这样的聊天,通过网络套接字接收和发送数据。

有人告诉我,我不应该为每场比赛生成一个进程,而应该为每场比赛创建一个进程和一个线程(也许使用事件机)。

我在套接字部分使用 Juggernaut,它允许我使用发布/订阅系统向游戏中的所有玩家发送数据:每个玩家订阅一个游戏。但如何将每个玩家的数据发送到特定游戏呢?

我想可以把游戏ID或者频道ID从客户端发送到服务端,然后发送到对应的线程。

但是我如何向线程发送任何内容?

ruby-on-rails ruby real-time juggernaut
1个回答
8
投票

要将数据发送到线程,可以使用 Ruby 线程队列。

Ruby 3.3.0:https://ruby-doc.org/3.3.0/Thread/Queue.html

(如果您正在阅读本文并且有较新版本的 Ruby,请随时编辑此答案以更新 Ruby 版本)

© www.soinside.com 2019 - 2024. All rights reserved.