abstract out faye

This commit is contained in:
2012-11-29 11:32:22 +01:00
parent 0fa0d1e0ba
commit b9c0ca326b
11 changed files with 25 additions and 18 deletions
@@ -15,6 +15,7 @@
//= require jquery-ui //= require jquery-ui
//= require twitter/bootstrap //= require twitter/bootstrap
//= require mustache //= require mustache
//= require faye
//= require_directory . //= require_directory .
//= require_self //= require_self
var path_mapping = { var path_mapping = {
@@ -1,7 +1,7 @@
root = exports ? this root = exports ? this
root.Qsupplier= root.Qsupplier=
watch_events: -> watch_events: ->
faye = new Faye.Client('http://localhost:9292/faye') faye = new Faye.Client(event_host)
faye.subscribe "/supplier/"+supplier_id, (e)=> faye.subscribe "/supplier/"+supplier_id, (e)=>
if(e.event == 'new_order') if(e.event == 'new_order')
body = $('#active-orders-table tbody') body = $('#active-orders-table tbody')
@@ -29,6 +29,7 @@
//= require qwaiter //= require qwaiter
//= require supplier/order //= require supplier/order
//= require mustache //= require mustache
//= require faye
//= require_directory . //= require_directory .
//= require_self //= require_self
var path_mapping = { var path_mapping = {
+1 -1
View File
@@ -10,7 +10,7 @@ class Quser
formatted += utc.substr(11, 5) formatted += utc.substr(11, 5)
formatted formatted
watch_events: -> watch_events: ->
faye = new Faye.Client('http://localhost:9292/faye') faye = new Faye.Client(event_host)
faye.subscribe "/user/"+QMobile.user_id(), (e)=> faye.subscribe "/user/"+QMobile.user_id(), (e)=>
if(e.event == 'list_closed') if(e.event == 'list_closed')
#redirect_to 'user_root', {list_closed: 'true'} #redirect_to 'user_root', {list_closed: 'true'}
+11 -9
View File
@@ -9,12 +9,12 @@ class ApplicationController < ActionController::Base
def broadcast_user(uid, event, data = {}) def broadcast_user(uid, event, data = {})
message = {channel: "/user/#{uid}", data: {event: event, data: data}} message = {channel: "/user/#{uid}", data: {event: event, data: data}}
uri = URI.parse("http://localhost:9292/faye") uri = URI.parse(event_host)
Net::HTTP.post_form(uri, :message => message.to_json) Net::HTTP.post_form(uri, :message => message.to_json)
end end
def broadcast_supplier(sid, event, data = {}) def broadcast_supplier(sid, event, data = {})
message = {channel: "/supplier/#{sid}", data: {event: event, data: data}} message = {channel: "/supplier/#{sid}", data: {event: event, data: data}}
uri = URI.parse("http://localhost:9292/faye") uri = URI.parse(event_host)
Net::HTTP.post_form(uri, :message => message.to_json) Net::HTTP.post_form(uri, :message => message.to_json)
end end
def set_locale def set_locale
@@ -23,14 +23,10 @@ class ApplicationController < ActionController::Base
def layout_by_resource def layout_by_resource
if devise_controller? if devise_controller?
case session[:user_return_to] return 'obtain_token' if session[:user_return_to].present?
when /\/user\// then 'obtain_token' return 'theme1' if session[:supplier_return_to].present?
when /obtain_token/ then 'obtain_token'
else 'theme1'
end
else
"application"
end end
"theme1"
end end
def check_active_list_state def check_active_list_state
if current_user.try(:active_list_id) if current_user.try(:active_list_id)
@@ -60,4 +56,10 @@ class ApplicationController < ActionController::Base
{ok: true, message: message}.merge(options).to_json {ok: true, message: message}.merge(options).to_json
end end
# Return the hostname of the event server
def event_host
#TODO: do not do and environment check, its ugly!
"http://#{Rails.env.production? ? 'events.qwaiter.com' : 'localhost'}:9296/faye"
end
helper_method :event_host
end end
+1
View File
@@ -76,4 +76,5 @@ module ApplicationHelper
def twitter_link def twitter_link
link_to 'Twitter', 'https://www.twitter.com/Qwaiter', target: :_blank link_to 'Twitter', 'https://www.twitter.com/Qwaiter', target: :_blank
end end
end end
+1 -1
View File
@@ -11,7 +11,6 @@ html lang="en"
/[if lt IE 9] /[if lt IE 9]
= javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js" = javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js"
= stylesheet_link_tag "user/application", :media => "all" = stylesheet_link_tag "user/application", :media => "all"
= javascript_include_tag 'http://localhost:9292/faye.js'
link href="/images/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144" link href="/images/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144"
link href="/images/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114" link href="/images/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114"
link href="/images/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72" link href="/images/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72"
@@ -20,6 +19,7 @@ html lang="en"
javascript: javascript:
var data_host = '#{Rails.env == 'development' ? 'http://qwaiter.dev' : 'http://data.qwaiter.com' }'; var data_host = '#{Rails.env == 'development' ? 'http://qwaiter.dev' : 'http://data.qwaiter.com' }';
var data_host = 'http://localhost:3000'; var data_host = 'http://localhost:3000';
var event_host = '#{event_host}';
//data_host = 'http://192.168.1.148:3000'; //data_host = 'http://192.168.1.148:3000';
var $locale = 'en'; var $locale = 'en';
var $url_vars = null; var $url_vars = null;
+2 -2
View File
@@ -11,7 +11,6 @@ html lang="en"
/[if lt IE 9] /[if lt IE 9]
= javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js" = javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js"
= stylesheet_link_tag "supplier/application", :media => "all" = stylesheet_link_tag "supplier/application", :media => "all"
= javascript_include_tag 'http://localhost:9292/faye.js'
link href="/images/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144" link href="/images/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144"
link href="/images/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114" link href="/images/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114"
link href="/images/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72" link href="/images/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72"
@@ -20,7 +19,8 @@ html lang="en"
javascript: javascript:
var supplier_id = '#{current_supplier.id}'; var supplier_id = '#{current_supplier.id}';
var data_host = '' var data_host = '';
var event_host = '#{event_host}';
= yield :head = yield :head
+2 -2
View File
@@ -38,8 +38,8 @@ Qrammer::Application.routes.draw do
# USER # USER
#default_url_options format: 'html' #default_url_options format: 'html'
match '/user' => redirect('/user/home.html') get '/user/home' => 'user#home', as: :user_root
match '/user/home' => 'user#home', as: :user_root match '/user' => 'user#home'
get '/user/active_list(.:format)' => 'user#active_list', as: :user_active_list get '/user/active_list(.:format)' => 'user#active_list', as: :user_active_list
match '/user/list_info' => 'user#list_info', as: :user_list_info, via: [:get, :options] match '/user/list_info' => 'user#list_info', as: :user_list_info, via: [:get, :options]
post '/user/needs_help' => 'user#needs_help', as: :user_needs_help post '/user/needs_help' => 'user#needs_help', as: :user_needs_help
+2 -2
View File
@@ -1,6 +1,6 @@
require 'faye' require 'faye'
#require File.expand_path('../config/initializers/faye_token.rb', __FILE__) #require File.expand_path('../config/initializers/faye_token.rb', __FILE__)
setproctitle('qwaiter_faye') if respond_to?(:setproctitle)
class ServerAuth class ServerAuth
def incoming(message, callback) def incoming(message, callback)
if message['channel'] !~ %r{^/meta/} if message['channel'] !~ %r{^/meta/}
@@ -13,6 +13,6 @@ class ServerAuth
end end
faye_server = Faye::RackAdapter.new(mount: '/faye', timeout: 45) faye_server = Faye::RackAdapter.new(mount: '/faye', timeout: 45)
faye_server.listen 9292 faye_server.listen 9296
faye_server.add_extension(ServerAuth.new) faye_server.add_extension(ServerAuth.new)
run faye_server run faye_server
File diff suppressed because one or more lines are too long