sse.cr v0.10.0

A Crystal shard for Server-Sent Events

Server-Sent Events

Build Status Releases

Server-Sent Events server/client for Crystal.

Installation

  1. Add the dependency to your shard.yml:
dependencies:
  sse:
    github: y2k2mt/sse.cr
  1. 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

  1. Fork it (https://github.com/y2k2mt/sse.cr/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

  • y2k2mt - creator and maintainer
Repository

sse.cr

Owner
Statistic
  • 23
  • 1
  • 0
  • 0
  • 1
  • almost 2 years ago
  • November 2, 2018
License

MIT License

Links
Synced at

Sun, 17 Nov 2024 15:59:29 GMT

Languages