首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >em-websocket gem与Ruby on Rails

em-websocket gem与Ruby on Rails
EN

Stack Overflow用户
提问于 2012-04-19 05:22:21
回答 3查看 4.5K关注 0票数 3

我开始使用em-websocket gem开发一个基于web-socket的游戏。

为了测试应用程序,我通过运行以下命令启动服务器

$> ruby server.rb

然后我只需打开两个浏览器,直接进入html文件(没有web服务器),然后开始播放。

但现在我想添加一个web服务器,一些数据库表,以及其他基于Ruby on Rails的gem。

如何在web-socket服务器和Ruby on Rails应用程序之间实现通信?它们是否应该在同一台服务器上运行,并作为单个进程运行?在不同的服务器上运行并通过AJAX进行通信?

我需要支持身份验证和其他功能,如当游戏结束时更新数据库等。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-19 05:48:30

票数 3
EN

Stack Overflow用户

发布于 2012-04-19 05:40:23

事情是这样的。我还想用ruby on rails框架开发一个websocket服务器客户端。然而,ruby-on-rails对eventmachine并不是很友好。我一直在为拥有一个websocket客户端而苦苦挣扎,所以我设法从现有的库中复制/剪切/粘贴,并最终得到了以下两个基本的内容。

Em-Websocket服务器

代码语言:javascript
复制
https://gist.github.com/ffaf2a8046b795d94ba0

ROR友好的websocket客户端

代码语言:javascript
复制
https://gist.github.com/2416740

将服务器代码放在脚本目录中,开始代码类似于下面的ruby代码。

代码语言:javascript
复制
    # 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

那么您的客户端就可以像这样使用

代码语言:javascript
复制
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限制)

票数 3
EN

Stack Overflow用户

发布于 2012-06-04 06:19:26

我正在开发一个宝石,它可能会对您当前的用例有所帮助。这个gem被称为websocket-rails,它的设计初衷是让在Rails应用程序中使用WebSockets变得非常简单。它现在是一个稳定的发行版。

请让我知道,如果你觉得这是有帮助的,或有任何想法,它可能缺乏。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10218222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档