我开始使用em-websocket gem开发一个基于web-socket的游戏。
为了测试应用程序,我通过运行以下命令启动服务器
$> ruby server.rb
然后我只需打开两个浏览器,直接进入html文件(没有web服务器),然后开始播放。
但现在我想添加一个web服务器,一些数据库表,以及其他基于Ruby on Rails的gem。
如何在web-socket服务器和Ruby on Rails应用程序之间实现通信?它们是否应该在同一台服务器上运行,并作为单个进程运行?在不同的服务器上运行并通过AJAX进行通信?
我需要支持身份验证和其他功能,如当游戏结束时更新数据库等。
提前谢谢。
发布于 2012-04-19 05:48:30
发布于 2012-04-19 05:40:23
事情是这样的。我还想用ruby on rails框架开发一个websocket服务器客户端。然而,ruby-on-rails对eventmachine并不是很友好。我一直在为拥有一个websocket客户端而苦苦挣扎,所以我设法从现有的库中复制/剪切/粘贴,并最终得到了以下两个基本的内容。
Em-Websocket服务器
https://gist.github.com/ffaf2a8046b795d94ba0ROR友好的websocket客户端
https://gist.github.com/2416740将服务器代码放在脚本目录中,开始代码类似于下面的ruby代码。
# Spawn a new process and run the rake command
pid = Process.spawn("ruby", "web_socket_server.rb",
"--loglevel=debug", "--logfile=#{Rails.root}/log/websocket.log",
:chdir=>"#{Rails.root}/script") #,
:out => 'dev/null', :err => 'dev/null'
Process.detach pid # Detach the spawned process那么您的客户端就可以像这样使用
ws = WebSocketClient.new("ws://127.0.0.1:8099/import")
Thread.new() do
while data = ws.receive()
if data =~ /cancel/
ws.send("Cancelling..")
exit
end
end
end
ws.close我希望有一个好的ROR友好的em-websocket客户端,但还不能找到一个。
一旦你让服务器/客户端工作得很好,auth。并且数据库支持不能与其他rails代码有很大的不同。(我的意思是让客户端具有一些auth/db限制)
发布于 2012-06-04 06:19:26
我正在开发一个宝石,它可能会对您当前的用例有所帮助。这个gem被称为websocket-rails,它的设计初衷是让在Rails应用程序中使用WebSockets变得非常简单。它现在是一个稳定的发行版。
请让我知道,如果你觉得这是有帮助的,或有任何想法,它可能缺乏。
https://stackoverflow.com/questions/10218222
复制相似问题