首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails服务器不能以em-websocket启动

rails服务器不能以em-websocket启动
EN

Stack Overflow用户
提问于 2012-12-21 01:13:46
回答 2查看 779关注 0票数 0

我正在尝试使用em-websocket构建一个rails websocket应用程序。我已经将下面的代码放在config/initalizers/websocket.rb文件中,但是当我运行'rails server‘时,应用程序没有启动。如果我删除代码,它可以正常启动。同样的事情也发生在我的本地机器和服务器上。

代码语言:javascript
复制
require 'eventmachine'
require 'em-websocket'

EventMachine.run {

    EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080) do |ws|
        ws.onopen {
          puts "WebSocket connection open"
          ws.send "Hello Client"
        }

        ws.onclose { puts "Connection closed" }
        ws.onmessage { |msg|
          puts "Recieved message: #{msg}"
          ws.send "Pong: #{msg}"
        }
    end

    puts "Websocket started"
}

我把这个控制台打印出来

代码语言:javascript
复制
=> Booting WEBrick
=> Rails 3.2.1 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Websocket started

如果我删除上面的代码,它会正常启动,并得到:

代码语言:javascript
复制
=> Booting WEBrick
=> Rails 3.2.1 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-12-21 04:19:52] INFO  WEBrick 1.3.1
[2012-12-21 04:19:52] INFO  ruby 1.9.3 (2012-04-20) [i386-mingw32]
[2012-12-21 04:19:52] INFO  WEBrick::HTTPServer#start: pid=1484 port=3000

任何想法都将受到高度赞赏。

EN

回答 2

Stack Overflow用户

发布于 2012-12-21 03:18:13

我以前没有用过这个gem,但是它看起来像是在初始化中启动了一个服务器。

然后在主线程上暂停执行,直到Websockets服务器将控制权交还给它(可能是在websockets服务器关闭时)。

您可能希望服务器作为一个单独的应用程序,因此您有一个响应HTTP的服务器(您的Rails服务器),以及一个响应套接字的服务器(初始化器文件是它的开头)。

票数 3
EN

Stack Overflow用户

发布于 2017-07-18 08:08:31

第一个解决方案:

  • 运行'rails websocket.rb‘后,将项目移至/config (而不是在初始值设定项内)
  • 打开另一个控制台。
  • 转到您的_project_path/config/并运行'ruby websocket.rb'

第二种解决方案:

将你的代码放在Thread中,以避免主线程阻塞。

代码语言:javascript
复制
require 'eventmachine'
require 'em-websocket'

Thread.new { 

# Your websocket code

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

https://stackoverflow.com/questions/13977208

复制
相关文章

相似问题

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