Integrate WebSockets (via sunshowers) in Sinatra application
Language: Ruby
# create config.ru like:
#
# require 'echowebsocket'
# run EchoWebSocket.new
#
# and start it with:
#
# rackup config.ru -s thin -E production -p 8000
#
# echowebsocket.rb will be:
require 'sinatra'
require 'sunshowers'
class Sinatra::Request < Rack::Request
include Sunshowers::WebSocket
end
class EchoWebSocket < Sinatra::Base
set :sessions, true
get "/echo" do
if request.ws?
request.ws_handshake!
request.ws_io.each do |record|
ws_io.write_utf8(record)
break if record == "Goodbye"
end
begin
request.ws_quit!
rescue
nil
end
end
"You're not using Web Sockets"
end
end
Reveal More

