# 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