README.md in servent-0.0.1 vs README.md in servent-0.1.0
- old
+ new
@@ -1,8 +1,8 @@
# Servent
-[<img src="https://travis-ci.com/mistersourcerer/servent.svg?token=aMwiRm3UQ11zdWwMxGgZ&branch=master" />](https://travis-ci.com/mistersourcerer/servent)
+[<img src="https://travis-ci.org/mistersourcerer/servent.svg?branch=master" />](https://travis-ci.org/mistersourcerer/servent)
Ruby _Server-Sent Events_ client.
A _EventSource_ Ruby implementation based on the [W3C specification](https://www.w3.org/TR/eventsource).
## Early Development [15/11/2017]
@@ -27,30 +27,79 @@
#
# event: hello_world
# id: 42
# data: Omg! Hello World.
-events = Queue.new
-
event_source = Servent::EventSource.new("http://example.org/event-source")
event_source.on_message do |message|
- events.push message
-end
-event_source.start
-
-while (event = events.pop)
puts "Event type: #{event.type}"
- puts "Event body: #{event.body}"
+ puts "Event body: #{event.data}"
# Will print:
#
# ```
# Event type: hello_world
# Event body: Omg! Hello World.
# ```
# And wait for the next event to arrive.
end
+
+# join the internal event source thread
+# so we can receive event until it terminates:
+event_source.listen
```
+
+## More examples
+
+There is directory `examples` in this project
+with a _WEBrick_ server
+and also a `EventSource` consumer.
+
+### How to run the example
+
+#### TL;DR
+
+ # on one terminal:
+ $ rackup
+
+ # on a second one:
+ $ ruby consumer.rb
+
+ # on yeat another one
+ $ curl http://localhost:9292/broadcast
+
+ # and to make the consumer close itself:
+ $ curl http://localhost:9292/enough
+
+#### More detailed version
+
+if you are inside the directory
+(or copied the files in the example dir to your own)
+you can run a _rackup_:
+
+ $ rackup
+
+The server will run on port _9292_
+and it has 3 endpoints:
+
+ /
+ /broadcast
+ /enough
+
+The root (`/`) is intended to consumers
+and the one in the example
+starts listening to that endpoint like this:
+
+```ruby
+event_source = Servent::EventSource.new("http://localhost:9292/")
+# ...
+event_source.listen
+```
+
+If you want to test multiple messages arriving
+you can use the `repeat` parameters in the request:
+
+ $ curl http://localhost/broadcast?repeat=3
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.