Screencast: Einfaches Messaging mit Faye

Faye ist ein einfach zu benutzendes messaging system, welches auf dem Bayeux Protokoll basiert. In diesem Screencast könnt ihr sehen wie es in Rails eingesetzt werden kann.

 

Download:

Download(17.9 MB, 13:42)
Alternativer Download für iPod & Apple TV(18.5 MB, 13:42)

 

Resourcen:

 

Quellcode:

[bash]
gem install faye
rackup faye.ru -s thin -E production
curl http://localhost:9292/faye -d ‚message={"channel":"/messages/new", "data":"hello"}‘
[/bash]

[ruby]
# config/application.rb
require "net/http"

# config/initializers/faye_token.rb
FAYE_TOKEN = "anything"

# application_helper.rb
def broadcast(channel, &block)
message = {:channel => channel, :data => capture(&block), :ext => {:auth_token => FAYE_TOKEN}}
uri = URI.parse("http://localhost:9292/faye")
Net::HTTP.post_form(uri, :message => message.to_json)
end

# faye.ru
require ‚faye‘
require File.expand_path(‚../config/initializers/faye_token.rb‘, __FILE__)

class ServerAuth
def incoming(message, callback)
if message[‚channel‘] !~ %r{^/meta/}
if message[‚ext‘][‚auth_token‘] != FAYE_TOKEN
message[‚error‘] = ‚Invalid authentication token‘
end
end
callback.call(message)
end
end

faye_server = Faye::RackAdapter.new(:mount => ‚/faye‘, :timeout => 45)
faye_server.add_extension(ServerAuth.new)
run faye_server
[/ruby]

[html]
<% broadcast "/messages/new" do %>
$("#chat").append("<%= escape_javascript render(@message) %>");
<% end %>
$("#new_message")[0].reset();
[/html]

[javascript]
/* application.js */
$(function() {
var faye = new Faye.Client(‚http://localhost:9292/faye‘);
faye.subscribe("/messages/new", function(data) {
eval(data);
});
});
[/javascript]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.