首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Faye Websocket示例错误?

Faye Websocket示例错误?
EN

Stack Overflow用户
提问于 2015-09-28 02:00:24
回答 1查看 244关注 0票数 0

用于Ruby的Faye Websocket,有一个特殊的例子不适合我。

https://raw.githubusercontent.com/faye/faye-websocket-ruby/master/examples/app.rb

代码语言:javascript
复制
require 'faye/websocket'
require 'permessage_deflate'
require 'rack'

static  = Rack::File.new(File.dirname(__FILE__))
options = {:extensions => [PermessageDeflate], :ping => 5}

App = lambda do |env|
  if Faye::WebSocket.websocket?(env)
    ws = Faye::WebSocket.new(env, ['irc', 'xmpp'], options)
    p [:open, ws.url, ws.version, ws.protocol]

    ws.onmessage = lambda do |event|
      ws.send(event.data)
    end

    ws.onclose = lambda do |event|
      p [:close, event.code, event.reason]
      ws = nil
    end

    ws.rack_response

  elsif Faye::EventSource.eventsource?(env)
    es   = Faye::EventSource.new(env)
    time = es.last_event_id.to_i

    p [:open, es.url, es.last_event_id]

    loop = EM.add_periodic_timer(2) do
      time += 1
      es.send("Time: #{time}")
      EM.add_timer(1) do
        es.send('Update!!', :event => 'update', :id => time) if es
      end
    end

    es.send("Welcome!\n\nThis is an EventSource server.")

    es.onclose = lambda do |event|
      EM.cancel_timer(loop)
      p [:close, es.url]
      es = nil
    end

    es.rack_response

  else
    static.call(env)
  end
end

def App.log(message)
end

但是,应用程序确实在运行,但是条件:

代码语言:javascript
复制
App = lambda do |env|

没有得到满足,也没有迭代。这个文件应该由外部源运行吗?丢了一份文件?

这是通过以下命令运行文件:

代码语言:javascript
复制
ruby app.rb
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-28 06:40:07

我尝试的websocket服务器示例是通过具有'app.rb‘和'config.ru’文件来运行的。Thin、faye、permessage_deflate、json和我认为邦德勒必须与“gem安装”一起安装,才能使这个示例正常工作。

运行脚本的命令在'config.ru‘中有详细的内容,并在这里发布以供参考

thin start -R examples/config.ru -p 7000

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

https://stackoverflow.com/questions/32814772

复制
相关文章

相似问题

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