Class: Sidekiq::Mcp::SseMiddleware
- Inherits:
-
Object
- Object
- Sidekiq::Mcp::SseMiddleware
- Defined in:
- lib/sidekiq/mcp/sse_middleware.rb
Defined Under Namespace
Classes: SseStreamer
Constant Summary collapse
- SSE_HEADERS =
{ 'Content-Type' => 'text/event-stream', 'Cache-Control' => 'no-cache, no-store, must-revalidate', 'Connection' => 'keep-alive', 'X-Accel-Buffering' => 'no', # For Nginx 'Access-Control-Allow-Origin' => '*', 'Access-Control-Allow-Methods' => 'GET, OPTIONS', 'Access-Control-Allow-Headers' => 'Content-Type, Authorization', 'Access-Control-Max-Age' => '86400', 'Keep-Alive' => 'timeout=600', 'Pragma' => 'no-cache', 'Expires' => '0' }.freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ SseMiddleware
constructor
A new instance of SseMiddleware.
Constructor Details
#initialize(app) ⇒ SseMiddleware
25 26 27 28 29 30 |
# File 'lib/sidekiq/mcp/sse_middleware.rb', line 25 def initialize(app) @app = app @server = Server.new @clients = {} @clients_mutex = Mutex.new end |
Instance Method Details
#call(env) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/sidekiq/mcp/sse_middleware.rb', line 32 def call(env) request = Rack::Request.new(env) return @app.call(env) unless sse_request?(request) return unless (request) if request.get? handle_sse_connection(request, env) elsif request.post? (request) else method_not_allowed_response end end |