Faye Websocket 示例错误?
Faye Websocket example bug?
在 Faye Websocket for Ruby,有一个具体示例对我不起作用。
https://raw.githubusercontent.com/faye/faye-websocket-ruby/master/examples/app.rb
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
应用程序确实 运行,但是条件:
App = lambda do |env|
未满足且未迭代。这个文件应该是外部来源 运行 吗?缺少文件?
这是通过命令 运行ning 文件:
ruby app.rb
我正在尝试的 websocket 服务器示例是 运行,同时包含 'app.rb' 和 'config.ru' 文件。 Thin,faye,permessage_deflate,json,而且我认为 bundler 必须与 'gem install ' 一起安装才能使这个示例工作。
运行脚本的命令在'config.ru'中有详细说明,贴在这里供参考
thin start -R examples/config.ru -p 7000
在 Faye Websocket for Ruby,有一个具体示例对我不起作用。
https://raw.githubusercontent.com/faye/faye-websocket-ruby/master/examples/app.rb
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
应用程序确实 运行,但是条件:
App = lambda do |env|
未满足且未迭代。这个文件应该是外部来源 运行 吗?缺少文件?
这是通过命令 运行ning 文件:
ruby app.rb
我正在尝试的 websocket 服务器示例是 运行,同时包含 'app.rb' 和 'config.ru' 文件。 Thin,faye,permessage_deflate,json,而且我认为 bundler 必须与 'gem install ' 一起安装才能使这个示例工作。
运行脚本的命令在'config.ru'中有详细说明,贴在这里供参考
thin start -R examples/config.ru -p 7000