0.08
Low commit activity in last 3 years
No release in over a year
em-eventsource is an eventmachine library to consume Server-Sent Events streaming API. You can find the specification here: http://dev.w3.org/html5/eventsource/
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

Runtime

 Project Readme

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:

require "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:

source.on "eventname" do |message|
  puts "eventname #{message}"
end

Handle error:

source.error do |error|
  puts "error #{error}"
end

Handle open stream:

source.open do
  puts "opened"
end

Close the stream:

source.close

Current status of the connection:

# Can be:
# - EM::EventSource::CLOSED
# - EM::EventSource::CONNECTING
# - EM::EventSource::OPEN
source.ready_state

Override the default retry value (if the connection is lost):

source.retry = 5 # in seconds (default 3)

Get Last-Event-Id value:

source.last_event_id

Attach middleware:

source.use EM::Middleware::JSONResponse

Set the inactivity timeout. Set to 0 to disable the timeout.

source.inactivity_timeout = 120 # in seconds (default: 60).

Licence

MIT License

Copyright (C) 2020 Fran├žois de Metz

Copyright (C) 2011 af83