Sha256: 8db1f05096bc870cb0932cbcd2a1f007a80e63597c1e29fc32f57c070da6b7c2

Contents?: true

Size: 694 Bytes

Versions: 6

Compression:

Stored size: 694 Bytes

Contents

# frozen_string_literal: true

require 'bundler/setup'
require 'polyphony/http'
require 'polyphony/websocket'

def ws_handler(conn)
  timer = spin do
    throttled_loop(1) do
      conn << Time.now.to_s
    end
  end
  while (msg = conn.recv)
    conn << "you said: #{msg}"
  end
ensure
  timer.stop
end

opts = {
  reuse_addr:  true,
  dont_linger: true,
  upgrade:     {
    websocket: Polyphony::Websocket.handler(&method(:ws_handler))
  }
}

HTML = IO.read(File.join(__dir__, 'ws_page.html'))

spin do
  Polyphony::HTTP::Server.serve('0.0.0.0', 1234, opts) do |req|
    req.respond(HTML, 'Content-Type' => 'text/html')
  end
end

puts "pid: #{Process.pid}"
puts 'Listening on port 1234...'

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
polyphony-http-0.28 examples/http_ws_server.rb
polyphony-http-0.27 examples/http_ws_server.rb
polyphony-http-0.26 examples/http_ws_server.rb
polyphony-http-0.25 examples/http_ws_server.rb
polyphony-http-0.24 examples/http_ws_server.rb
polyphony-0.23 examples/http/http_ws_server.rb