sse
Server-Sent Events
Server-Sent Events server/client for Crystal.
Installation
- Add the dependency to your
shard.yml
:
dependencies:
sse:
github: y2k2mt/sse.cr
- Run
shards install
Usage
Client
require "sse"
sse = HTTP::ServerSentEvents::EventSource.new("http://127.0.0.1:8080")
sse.on_message do |message|
# Receiving messages from server
p message.data
end
sse.run
Server
require "sse"
server = HTTP::Server.new [
HTTP::ServerSentEvents::Handler.new { |es, _|
es.source {
# Delivering event data every 1 second.
sleep 1
HTTP::ServerSentEvents::EventMessage.new(
data: ["foo", "bar"],
)
}
},
]
server.bind_tcp "127.0.0.1", 8080
server.listen
Running server and you can get then:
$ curl 127.0.0.1:8080 -H "Accept: text/event-stream"
data: foo
data: bar
data: foo
data: bar
...
Contributing
- Fork it (https://github.com/y2k2mt/sse.cr/fork)
- 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 a new Pull Request
Contributors
- y2k2mt - creator and maintainer