Sha256: c5a5697dddfa43d8c04e922e1b3ba93a113e9132869c774d244be7ec6bd4ed00

Contents?: true

Size: 705 Bytes

Versions: 17

Compression:

Stored size: 705 Bytes

Contents

# encoding: utf-8
require "logstash/namespace"
require "logstash/outputs/websocket"
require "sinatra/base"
require "rack/handler/ftw" # from ftw
require "ftw/websocket/rack" # from ftw

class LogStash::Outputs::WebSocket::App < Sinatra::Base
  def initialize(pubsub, logger)
    @pubsub = pubsub
    @logger = logger
  end

  set :reload_templates, false

  get "/" do
    # TODO(sissel): Support filters/etc.
    ws = ::FTW::WebSocket::Rack.new(env)
    @logger.debug("New websocket client")
    stream(:keep_open) do |out|
      @pubsub.subscribe do |event|
        ws.publish(event)
      end # pubsub
    end # stream

    ws.rack_response
  end # get /
end # class LogStash::Outputs::WebSocket::App

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
logstash-output-websocket-3.1.0 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-3.0.5 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-3.0.4 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-3.0.3 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-3.0.2 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-3.0.1 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-3.0.0 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-2.0.4 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-2.0.2 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-2.0.1 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-0.1.5 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-0.1.4 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-0.1.3 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-0.1.2 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-0.1.1 lib/logstash/outputs/websocket/app.rb
logstash-output-websocket-0.1.0 lib/logstash/outputs/websocket/app.rb
logstash-lib-1.3.2 lib/logstash/outputs/websocket/app.rb