Em eventsource
em-eventsource is an eventmachine library to consume Server-Sent Events streaming API.
See the specification: https://html.spec.whatwg.org/multipage/server-sent-events.html The project is written primarily in Ruby, distributed under the MIT License license, first published in 2011. Key topics include: eventmachine, eventsource, eventsource-implementations, ruby, sse-client.
EventSource client for EventMachine
See the specification: https://html.spec.whatwg.org/multipage/server-sent-events.html
Install
Install with Rubygems:
gem install em-eventsource
If you use bundler, add it to your Gemfile:
gem "em-eventsource", "~> 0.3.0"
Usage
Basic usage:
rubyrequire "em-eventsource" EM.run do source = EventMachine::EventSource.new("http://example.com/streaming") source.message do |message| puts "new message #{message}" end source.start # Start listening end
Listening specific event name:
rubysource.on "eventname" do |message| puts "eventname #{message}" end
Handle error:
rubysource.error do |error| puts "error #{error}" end
Handle open stream:
rubysource.open do puts "opened" end
Close the stream:
rubysource.close
Current status of the connection:
ruby# Can be: # - EM::EventSource::CLOSED # - EM::EventSource::CONNECTING # - EM::EventSource::OPEN source.ready_state
Override the default retry value (if the connection is lost):
rubysource.retry = 5 # in seconds (default 3)
Get Last-Event-Id value:
rubysource.last_event_id
Attach middleware:
rubysource.use EM::Middleware::JSONResponse
Set the inactivity timeout. Set to 0 to disable the timeout.
rubysource.inactivity_timeout = 120 # in seconds (default: 60).
Licence
MIT License
Copyright (C) 2020 François de Metz
Copyright (C) 2011 af83
Contributors
Showing top 5 contributors by commit count.
