Sha256: 5ba88d762ac8c628c5188b50e583bf8c7e728d3e891689fd277a19ff5268aa8c

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

require 'rubygems'
require 'bundler/setup'
require File.expand_path('../../lib/faye/websocket', __FILE__)
require File.expand_path('../../vendor/em-rspec/lib/em-rspec', __FILE__)

Thin::Logging.silent = true

module EncodingHelper
  def encode(message)
    message.respond_to?(:force_encoding) ?
        message.force_encoding("UTF-8") :
        message
  end
  
  def bytes(string)
    string.bytes.to_a
  end
  
  def parse(bytes)
    @parser.parse(bytes.pack('C*'))
  end
end

class EchoServer
  def call(env)
    socket = Faye::WebSocket.new(env)
    socket.onmessage = lambda do |event|
      socket.send(event.data)
    end
    [-1, {}, []]
  end
  
  def listen(port, ssl = false)
    Rack::Handler.get('thin').run(self, :Port => port) do |s|
      if ssl
        s.ssl = true
        s.ssl_options = {
          :private_key_file => File.expand_path('../server.key', __FILE__),
          :cert_chain_file  => File.expand_path('../server.crt', __FILE__)
        }
      end
      @server = s
    end
  end
  
  def stop
    @server.stop
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
faye-websocket-0.1.2 spec/spec_helper.rb
faye-websocket-0.1.1 spec/spec_helper.rb
faye-websocket-0.1.0 spec/spec_helper.rb