Files
2011-12-19 00:12:51 +00:00

44 lines
984 B
Ruby

require 'rubygems'
require File.expand_path('../../lib/faye/websocket', __FILE__)
require 'rack'
require 'eventmachine'
port = ARGV[0] || 7000
secure = ARGV[1] == 'ssl'
static = Rack::File.new(File.dirname(__FILE__))
app = lambda do |env|
if env['HTTP_UPGRADE']
socket = Faye::WebSocket.new(env, ['irc', 'xmpp'])
p [:open, socket.url, socket.version, socket.protocol]
socket.onmessage = lambda do |event|
socket.send(event.data)
end
socket.onclose = lambda do |event|
p [:close, event.code, event.reason]
socket = nil
end
[-1, {}, []]
else
static.call(env)
end
end
EM.run {
thin = Rack::Handler.get('thin')
thin.run(app, :Port => port) do |server|
if secure
server.ssl = true
server.ssl_options = {
:private_key_file => File.expand_path('../../spec/server.key', __FILE__),
:cert_chain_file => File.expand_path('../../spec/server.crt', __FILE__)
}
end
end
}