eventflit-client: Ruby WebSocket client for Eventflit Channels
eventflit-client
is a Ruby gem for consuming WebSockets from Eventflit service.
Installation
gem install eventflit-client
This gem is compatible with jruby
Single-Threaded Usage
The application will pause at eventflit.connect
and handle events from Eventflit Channels as they happen.
require 'eventflit-client'
cluster = 'cus1'
eventflit = EventflitClient::Socket.new(YOUR_APPLICATION_KEY, {
secure: true,
ws_host: "ws-#{cluster}.eventflit.com"
})
eventflit.subscribe('channel1')
eventflit.subscribe('channel2')
eventflit.subscribe('presence-channel3', USER_ID)
eventflit.subscribe('private-channel4', USER_ID)
eventflit.subscribe('presence-channel5', :user_id => USER_ID, :user_name => 'john')
eventflit.bind('globalevent') do |data|
puts data
end
eventflit['channel1'].bind('channelevent') do |data|
puts data
end
eventflit.connect
Asynchronous Usage
With eventflit.connect(true)
,
the connection to Eventflit Channels will be maintained in its own thread.
The connection will remain open in the background as long as your main application thread is running,
and you can continue to subscribe/unsubscribe to channels and bind new events.
require 'eventflit-client'
eventflit = EventflitClient::Socket.new(YOUR_APPLICATION_KEY)
eventflit.connect(true)
eventflit.subscribe('channel1')
eventflit.subscribe('channel2')
eventflit.bind('globalevent') do |data|
puts data
end
eventflit['channel1'].bind('channelevent') do |data|
puts data
end
loop do
sleep(1)
end
Using native WebSocket implementation
This gem depends on the websocket
gem
which is a pure Ruby implementation of websockets.
However it can optionally use a native C or Java implementation for a 25% speed
increase by including the websocket-native
gem in your Gemfile.
Copyright and license
See LICENSE.txt
.