首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ruby: websocket服务器和websocket客户端无法工作

ruby: websocket服务器和websocket客户端无法工作
EN

Stack Overflow用户
提问于 2012-04-21 00:08:09
回答 1查看 918关注 0票数 1

我是一个真正的this.but新手,我不知道这个问题出了什么问题。

我刚刚从网上的某个地方复制了关于ruby websocket服务器和ruby websocket客户端实现的内容。我还在我的windows xp上安装了ruby1.93。一切看起来都很好,但是websocket客户端并不能很好地工作。

服务器端代码:

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

EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080) do |ws|
  ws.onopen    { ws.send "Hello Client!"}
  ws.onmessage { |msg| ws.send "Pong: #{msg}" }
  ws.onclose   { puts "WebSocket closed" }
end

客户端代码:

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

EventMachine.run {
  http = EventMachine::HttpRequest.new("ws://localhost:8080").get :timeout => 0
  http.errback { puts "oops" }
  http.callback {
      puts "WebSocket connected!"
      http.send("Hello client")
  }

  http.stream { |msg|
      puts "Recieved: #{msg}"
      http.send "Pong: #{msg}"
  }
}

客户端总是转出"oops“。这意味着发生了错误。

有人能给我一些线索吗?我很感激。

EN

回答 1

Stack Overflow用户

发布于 2012-04-21 07:23:45

实际上,深入挖掘你的代码是很好的,问题是最新版本的依赖关系发生了一些变化。修复步骤:

卸载当前的gem

代码语言:javascript
复制
 gem uninstall em-http-request --version="1.0.2"  
 gem uninstall em-socksify --version "=0.2.0"     1.0.0.beta.4
 gem uninstall eventmachine --version "=1.0.0.beta.4"

然后安装这些gem

代码语言:javascript
复制
 gem install em-http-request --version "=0.3"
 gem install em-socksify --version "=0.1"
 gem install eventmachine --version "0.12.10"

事情应该会好起来的。如果这是一个严肃的项目,而不是学习,你会想要调查是什么变化打破了websocket客户端-服务器。

注意:这适用于我在Ubuntu上的Ruby 1.9.2,它应该适用于你,但也可能不适用。

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

https://stackoverflow.com/questions/10249683

复制
相关文章

相似问题

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