Class RouterContainer
java.lang.Object
org.simpleframework.http.socket.service.RouterContainer
- All Implemented Interfaces:
Container
The
RouterContainer
is used to route requests that
satisfy a WebSocket opening handshake to a specific service. Each
request intercepted by this Container
implementation
is examined for opening handshake criteria as specified by RFC 6455,
and if it contains the required information it is router to a
specific service using a Router
implementation. If the
request does not contain the required criteria it is handled by
an internal container delegate.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Container
This is the container used to handle traditional requests.private final ServiceDispatcher
This is the service dispatcher used to dispatch requests.private final Router
This is the router used to select specific services. -
Constructor Summary
ConstructorsConstructorDescriptionRouterContainer
(Container container, Router router, int threads) Constructor for theRouterContainer
object.RouterContainer
(Container container, Router router, int threads, long ping) Constructor for theRouterContainer
object. -
Method Summary
-
Field Details
-
dispatcher
This is the service dispatcher used to dispatch requests. -
container
This is the container used to handle traditional requests. -
router
This is the router used to select specific services.
-
-
Constructor Details
-
RouterContainer
Constructor for theRouterContainer
object. This requires a container to delegate traditional requests to and aRouter
implementation which can be used to select a service to dispatch a WebSocket session to.- Parameters:
container
- this is the container to delegate torouter
- this is the router used to select servicesthreads
- this contains the number of threads to use- Throws:
IOException
-
RouterContainer
public RouterContainer(Container container, Router router, int threads, long ping) throws IOException Constructor for theRouterContainer
object. This requires a container to delegate traditional requests to and aRouter
implementation which can be used to select a service to dispatch a WebSocket session to.- Parameters:
container
- this is the container to delegate torouter
- this is the router used to select servicesthreads
- this contains the number of threads to useping
- this is the frequency to send ping frames with- Throws:
IOException
-
-
Method Details
-
handle
This method is used to create a dispatch aSession
to a specific service selected by a router. If the session initiating handshake fails for any reason this will close the underlying TCP connection and send a HTTP 400 response back to the client. All traditional requests that do not represent an WebSocket opening handshake are dispatched to the internal container.
-