为什么我不能在JRuby上运行em-websocket-server?

时间:2013-05-31 12:33:54

标签: jruby em-websocket

我正在通过rvm运行JRuby-1.7.3。我已经成功安装了 em-websocket-server gem。我可以通过运行 $ gem list 来验证它在我当前的gemset中。

我的代码是:

require 'rubygems'
require 'em-websocket-server'

class EchoServer < EM::WebSocket::Server

  def on_connect
    EM::WebSocket::Log.debug "Connected"
  end

  def on_receive msg
    send_message msg
  end

end

EM.run do
    EM.start_server "0.0.0.0", 8000, EchoServer
end

当我尝试运行它时,我收到以下错误:

  

LoadError:没有要加载的文件 - em-websocket-server需要at   org / jruby / RubyKernel.java:1027需要at   /home/dev1/.rvm/rubies/jruby-1.7.3/lib/ruby/shared/rubygems/custom_require.rb:36

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我有完全相同的错误,因为我直接使用gem命令而不是jruby gem命令。

要解决这个问题,请运行:

jruby -S gem install em-websocket

这对我有用,希望这对你也有帮助。

答案 1 :(得分:0)

我删除了rvm($ rvm implode)并重新安装后,问题实际上已经解决了

$ rvm get head --autolibs=3 # get the latest RVM and build required libs
$ rvm requirements # just in case, install all other required stuff
$ rvm install jruby

然后我将所有宝石都安装在默认的gemset中。然后选择 em-websocket-server 并且工作正常。我只能将其归因于一些扭曲的配置,甚至是我原来的rvm设置中的错误。