RealtimeX Ruby SDK
Ruby client library for RealtimeX real-time messaging service.
Installation
Gemfile
gem 'socketio-client-simple', '~> 1.2'
gem 'json', '~> 2.0'
Manual
gem install socketio-client-simple json
Quick Start
require_relative 'lib/realtimex'
# Initialize
realtimex = RealtimeX.new('YOUR_API_KEY', {
ws_host: 'localhost',
ws_port: 3001,
encrypted: false
})
# Connect
realtimex.connect
# Subscribe to a channel
channel = realtimex.subscribe('my-channel')
# Listen for events
channel.bind('my-event') do |data|
puts "Received: #{data}"
end
# Send client events
channel.trigger('client-my-event', {
message: 'Hello'
})
API Reference
RealtimeX
Constructor
realtimex = RealtimeX.new(api_key, )
Parameters:
api_key(String): Your RealtimeX API keyoptions(Hash, optional): Configuration options:ws_host(String): WebSocket host, default 'localhost':ws_port(Integer): WebSocket port, default 3001:encrypted(Boolean): Use WSS, default false
Methods
connect
realtimex.connect
subscribe(channel_name)
channel = realtimex.subscribe('my-channel')
private_channel = realtimex.subscribe('private-my-channel')
disconnect
realtimex.disconnect
Channel
Methods
bind(event, &block)
channel.bind('my-event') do |data|
puts "Event data: #{data}"
end
trigger(event, data)
# Client events must start with 'client-'
channel.trigger('client-my-event', {
message: 'Hello World'
})
Connection Events
realtimex.connection.bind('connected') do
puts 'Connected to RealtimeX'
end
realtimex.connection.bind('disconnected') do
puts 'Disconnected from RealtimeX'
end
Channel Types
Public Channels
channel = realtimex.subscribe('my-channel')
Private Channels
private_channel = realtimex.subscribe('private-my-channel')
WebSocket Protocol
Connection
ws://your-host:port/socket.io/?EIO=4&transport=websocket&api_key=YOUR_API_KEY
Message Format
Subscribe:
{
"event": "realtimex:subscribe",
"data": {
"channel": "my-channel"
}
}
Client Event:
{
"event": "client-event",
"data": {
"channel": "my-channel",
"event": "client-my-event",
"data": { "message": "Hello" }
}
}
Server Event:
{
"event": "server-event",
"data": {
"event": "my-event",
"channel": "my-channel",
"data": { "message": "Hello" }
}
}
Compatibility
Ruby Support
- Ruby 2.7+
- JRuby 9.3+
- TruffleRuby 22+
Dependencies
socketio-client-simple~> 1.2json~> 2.0
Features
✅ WebSocket connection management
✅ Channel subscription/unsubscription
✅ Event listening and triggering
✅ Client events
✅ YARD documentation
✅ Unit tests with RSpec
Development
# Install dependencies
bundle install
# Run tests
bundle exec rspec
# Generate documentation
yardoc
License
MIT