Files

42 lines
1.4 KiB
Ruby

require 'faye'
require 'pry'
#require 'pry'
# started using (with extra server contexts of cours like full paths):
# thin start -d -R faye/config.ru -p 9296 --pid tmp/pids/faye.pid
# serve nginx config:
# server {
# listen 443 ssl http2;
# listen [::]:443 ssl http2;
#
# server_name events.mozo.bar;
#
# ssl_certificate /etc/letsencrypt/live/mozo.bar/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/mozo.bar/privkey.pem;
# location / {
# proxy_pass http://127.0.0.1:9296;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto https;
# }
# }
#
#require File.expand_path('../config/initializers/faye_token.rb', __FILE__)
Process.setproctitle('mozo_faye') if Process.respond_to?(:setproctitle)
VALID_TOKENS = ['6be65f9b5e7d21b8ca8de4ccfad5ba24cf40d440b370af79']
# Comment
class ServerAuth
def incoming(message, callback)
if message['channel'] !~ %r{^/meta/}
message['error'] = 'Invalid authentication token' unless message['ext'] && VALID_TOKENS.include?(message['ext']['auth_token'])
end
callback.call(message)
end
end
Faye::WebSocket.load_adapter('thin')
faye_server = Faye::RackAdapter.new(mount: '/faye', timeout: 45)
#faye_server.listen 9296
faye_server.add_extension(ServerAuth.new)
run faye_server