Class: LogStash::Outputs::WebSocket
- Defined in:
- lib/logstash/outputs/websocket.rb
Overview
This output runs a websocket server and publishes any messages to all connected websocket clients.
You can connect to it with ws://<host>:<port>/
If no clients are connected, any messages received are ignored.
Defined Under Namespace
Constant Summary
Constants included from Config::Mixin
Instance Attribute Summary
Attributes included from Config::Mixin
Attributes inherited from Plugin
Instance Method Summary collapse
Methods inherited from Base
#handle, #handle_worker, #initialize, #worker_setup, #workers_not_supported
Methods included from Config::Mixin
Methods inherited from Plugin
#eql?, #finished, #finished?, #hash, #initialize, #inspect, lookup, #reload, #running?, #shutdown, #teardown, #terminating?, #to_s
Constructor Details
This class inherits a constructor from LogStash::Outputs::Base
Instance Method Details
#receive(event) ⇒ Object
41 42 43 44 |
# File 'lib/logstash/outputs/websocket.rb', line 41 def receive(event) return unless output?(event) @pubsub.publish(event.to_json) end |
#register ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/logstash/outputs/websocket.rb', line 22 def register require "ftw" require "logstash/outputs/websocket/app" require "logstash/outputs/websocket/pubsub" @pubsub = LogStash::Outputs::WebSocket::Pubsub.new @pubsub.logger = @logger @server = Thread.new(@pubsub) do |pubsub| begin Rack::Handler::FTW.run(LogStash::Outputs::WebSocket::App.new(pubsub, @logger), :Host => @host, :Port => @port) rescue => e @logger.error("websocket server failed", :exception => e) sleep 1 retry end end end |