#!./uwsgi --plugins http,0:rack,fiber --https :443,foobar.crt,foobar.key --http-websockets --fiber --rack tests/websockets_echo.ru --async 100 class WebsocketEcho def call(env) ws_scheme = 'ws' if env.has_key?('HTTPS') or env['rack.url_scheme'] == 'https' ws_scheme = 'wss' end if env['PATH_INFO'] == '/' body = <

WebSocket

EOF return [200, { 'Content-Type' => 'text/html'}, [body]] elsif env['PATH_INFO'] == '/foobar/' UWSGI::websocket_handshake(env['HTTP_SEC_WEBSOCKET_KEY'], env['HTTP_ORIGIN']) puts "websockets..." loop do msg = UWSGI::websocket_recv UWSGI::websocket_send("[#{Time.now}] #{msg}") end end end end run WebsocketEcho.new