Celluloid::WebSocket
Lets you make a websocket rack application using Celluloid.
With thanks to Tony Arcieri for his awesome Celluloid libraries.
Installation
Add this line to your application's Gemfile:
gem 'celluloid-websocket'
And then execute:
$ bundle
Or install it yourself as:
$ gem install celluloid-websocket
Usage
Simply inherit your Rack app from Celluloid::WebSocket::Rack, and implement the on_open method and using the read and write functions to implement a protocol.
require 'celluloid/websocket/rack'
class WebSocketEcho < Celluloid::WebSocket
def on_open
@counter = 0
while(true)
message = read
@counter += 1
write("#{@counter}: #{message}")
end
end
def on_error(*args)
puts args.inspect
end
end
run WebSocketEcho.rack
You can try it out by cloning this repository running bundle and then:
passenger start -R examples/message_counter.ru
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