ofxHTTP
A collection of tools for HTTP.
|
A route for handling WebSockets. More...
#include <WebSocketRoute.h>
Public Types | |
typedef WebSocketRouteSettings | Settings |
A typedef for the WebSocketRouteSettings. | |
Public Member Functions | |
WebSocketRoute (const Settings &settings) | |
Create a WebSocketRoute with the given Settings. More... | |
virtual | ~WebSocketRoute () |
Destroy the WebSocketRoute. | |
virtual bool | canHandleRequest (const Poco::Net::HTTPServerRequest &request, bool isSecurePort) const override |
Determine if this route can handle the given request. More... | |
virtual Poco::Net::HTTPRequestHandler * | createRequestHandler (const Poco::Net::HTTPServerRequest &request) override |
Creates a new HTTPRequestHandler for the given request. More... | |
virtual void | stop () override |
Stop any pending activity and close this route. More... | |
void | broadcast (const WebSocketFrame &frame) |
Send a WebSocketFrame to all connected websockets. More... | |
template<class ListenerClass > | |
void | registerWebSocketEvents (ListenerClass *listener, int priority=OF_EVENT_ORDER_AFTER_APP) |
Register event listeners for this route. More... | |
template<class ListenerClass > | |
void | unregisterWebSocketEvents (ListenerClass *listener, int priority=OF_EVENT_ORDER_AFTER_APP) |
Unregister event listeners for this route. More... | |
std::size_t | numConnections () const |
const std::vector< std::unique_ptr< AbstractWebSocketFilterFactory > > & | filterFactories () const |
Public Member Functions inherited from ofx::HTTP::BaseRoute_< WebSocketRouteSettings > | |
BaseRoute_ (const WebSocketRouteSettings &settings=WebSocketRouteSettings()) | |
Create a BaseRoute. More... | |
virtual | ~BaseRoute_ () |
Destroy a BaseRoute. | |
virtual void | setup (const WebSocketRouteSettings &settings) |
Setup the route with settings. More... | |
virtual std::string | routePathPattern () const override |
Get the route's regex path pattern. More... | |
void | handleRequest (Poco::Net::HTTPServerRequest &request, Poco::Net::HTTPServerResponse &response) override |
virtual void | handleRequest (ServerEventArgs &evt) override |
Handle the ServerEventArgs. More... | |
const WebSocketRouteSettings & | settings () const |
AbstractServer * | getServer () override |
void | setServer (AbstractServer *server) override |
Set the server that owns this route. More... | |
Public Member Functions inherited from ofx::HTTP::AbstractRoute | |
virtual | ~AbstractRoute () |
Destroy the AbstractRoute instance. | |
Public Member Functions inherited from ofx::HTTP::AbstractHTTPRequestHandler | |
virtual | ~AbstractHTTPRequestHandler () |
Destroy the AbstractHTTPRequestHandler. | |
Public Member Functions inherited from ofx::HTTP::AbstractServerEventRequestHandler | |
virtual | ~AbstractServerEventRequestHandler () |
Destroy the AbstractServerEventRequestHandler. | |
Public Member Functions inherited from ofx::HTTP::AbstractHTTPRequestHandlerFactory | |
virtual | ~AbstractHTTPRequestHandlerFactory () |
Destroy the AbstractHTTPRequestHandlerFactory. | |
Public Attributes | |
WebSocketEvents | events |
WebSocketEvents for WebSocket callbacks. | |
Protected Member Functions | |
void | registerConnection (WebSocketConnection *connection) |
void | unregisterConnection (WebSocketConnection *connection) |
Friends | |
class | WebSocketConnection |
Additional Inherited Members | |
Protected Attributes inherited from ofx::HTTP::BaseRoute_< WebSocketRouteSettings > | |
WebSocketRouteSettings | _settings |
The settings. | |
AbstractServer * | _server |
A pointer to the server. | |
A route for handling WebSockets.
ofx::HTTP::WebSocketRoute::WebSocketRoute | ( | const Settings & | settings | ) |
Create a WebSocketRoute with the given Settings.
settings | The WebSocketRoute settings. |
void ofx::HTTP::WebSocketRoute::broadcast | ( | const WebSocketFrame & | frame | ) |
Send a WebSocketFrame to all connected websockets.
frame | The frame to send. |
|
overridevirtual |
Determine if this route can handle the given request.
request | The incoming Poco::Net::HTTPServerRequest to be tested. |
isSecurePort | true iff the connection is SSL encrypted. Some implmenetations of this interface may choose to only handle requests on secure ports. |
Reimplemented from ofx::HTTP::BaseRoute_< WebSocketRouteSettings >.
|
overridevirtual |
Creates a new HTTPRequestHandler for the given request.
Before this is called, it is expected that the calling server has confirmed that this route is capable of handling the request by calling canHandleRequest().
request | The HTTPServerRequest to be passed to the handler. |
Reimplemented from ofx::HTTP::BaseRoute_< WebSocketRouteSettings >.
const std::vector< std::unique_ptr< AbstractWebSocketFilterFactory > > & ofx::HTTP::WebSocketRoute::filterFactories | ( | ) | const |
std::size_t ofx::HTTP::WebSocketRoute::numConnections | ( | ) | const |
void ofx::HTTP::WebSocketRoute::registerWebSocketEvents | ( | ListenerClass * | listener, |
int | priority = OF_EVENT_ORDER_AFTER_APP |
||
) |
Register event listeners for this route.
The listener class must implement the following callbacks:
onWebSocketOpenEvent(...), onWebSocketCloseEvent(...), onWebSocketFrameReceivedEvent(...), onWebSocketFrameSentEvent(...), onWebSocketErrorEvent(...).
ListenerClass | The lister class to register. |
listener | A pointer to the listener class. |
priority | The listener priority. |
|
overridevirtual |
Stop any pending activity and close this route.
This method may block until the route is fully stopped.
Reimplemented from ofx::HTTP::BaseRoute_< WebSocketRouteSettings >.
void ofx::HTTP::WebSocketRoute::unregisterWebSocketEvents | ( | ListenerClass * | listener, |
int | priority = OF_EVENT_ORDER_AFTER_APP |
||
) |
Unregister event listeners for this route.
ListenerClass | The lister class to uregister. |
listener | A pointer to the listener class. |
priority | The listener priority. |