Transmitter
Transmitter provides a conveviance method to wrap the ActionController::Live functionality in Rails 4.
Installation
Add this line to your application's Gemfile:
gem 'transmitter'
And then execute:
$ bundle
Or install it yourself as:
$ gem install transmitter
Usage
To use Transmitter, simply create a routable action in your controller that will represent the event source for transmitting the Server-Sent Events, and then use the transmit
method to send accross an event and data payload to the client.
The first arguement to transmit
is the event name, the second arguement is amount of time between the client attempting to re-establish connection (in milliseconds), and the last argument is a hash containing the data that should be sent to the client.
FoosController < ActionController::Base
include ActionController::Live
...
def transmit_action
stream do
transmit event: 'event', retry: 1000, data: { my: 'really', cool: 'message' }
end
end
...
end
This will create a properly formatted Server-Sent Event using the functionality of ActionController::Live.
To consume this event on the client side, simply use the Javascript EventSource API:
$(document).ready(function(){
var source = new EventSource('your/eventsource/url');
source.addEventListener('your_event', function(message){
});
});
Requirements
- Transmitter relies on the ActionController::Live functionality of Rails 4
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
License
MIT