Action Cable Client
There are quite a few WebSocket Servers out there. The popular ones seem to be: faye-websocket-ruby, em-websockets. The client-only websocket gems are kinda hard to find, and are only raw websocket support. Rails has a thin layer on top of web sockets to help manage subscribing to channels and send/receive on channels.
This gem is a wrapper around em-websocket-client, and supports the Rails Action Cable protocol.
Usage
require 'action_cable_client'
EventMachine.run do
uri = "ws://localhost:3000/cable/"
client = ActionCableClient.new(uri, 'RoomChannel')
# the connected callback is required, as it triggers
# the actual subscribing to the channel but it can just be
# client.connected {}
client.connected { puts 'successfully connected.' }
# called whenever a message is received from the server
client.received do | |
puts
end
# adds to a queue that is purged upon receiving of
# a ping from the server
client.perform('speak', { message: 'hello from amc' })
end
This example is compatible with this version of a small Rails app with Action Cable
The available hooks to tie in to are:
disconnected {}connected {}errored { |msg| }received { |msg }