Orion::DSL::WebSockets
The websocket handlers allow you to easily add websocket support to your application.
Macros
Defines a websocket route to a callable object.
You can route to any object that responds to call with a HTTP::WebSocket and an HTTP::Server::Context.
router MyRouter do
ws "/path", Callable
end
module Callable
def call(ws : HTTP::WebSocket, cxt : HTTP::Server::Context)
# ... do something
end
end
Defines a websocket route to a websocket compatible controller and action (short form).
You can route to a controller and action by passing the to argument in
the form of "MyWebSocket#action".
router WebApp do
ws "/path", to: "Sample#ws"
end
class SampleController < WebApp::BaseController
def ws
# ... do something
end
end
Defines a match route to a controller and action (long form).
You can route to a controller and action by passing the controller and
action arguments, if action is omitted it will default to match.
router WebApp do
ws "/path", controller: SampleController, action: ws
end
class SampleController < WebApp::BaseController
def ws
# ... do something
end
end
Defines a match route with a block.
Pass a block as the response and it will be evaluated as a controller 0..2 block parameters are accepted. The block itself will always be evaluated as a controller and have access to all controller methods and macros.
router MyRouter do
ws "/path" do |websocket, context|
# ... do something
end
end