Class RouterContainer
- java.lang.Object
-
- org.simpleframework.http.socket.service.RouterContainer
-
- All Implemented Interfaces:
Container
public class RouterContainer extends java.lang.Object implements Container
TheRouterContainer
is used to route requests that satisfy a WebSocket opening handshake to a specific service. Each request intercepted by thisContainer
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 aRouter
implementation. If the request does not contain the required criteria it is handled by an internal container delegate.- See Also:
Router
-
-
Field Summary
Fields Modifier and Type Field Description private Container
container
This is the container used to handle traditional requests.private ServiceDispatcher
dispatcher
This is the service dispatcher used to dispatch requests.private Router
router
This is the router used to select specific services.
-
Constructor Summary
Constructors Constructor Description RouterContainer(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
handle(Request req, Response resp)
This method is used to create a dispatch aSession
to a specific service selected by a router.
-
-
-
Field Detail
-
dispatcher
private final ServiceDispatcher dispatcher
This is the service dispatcher used to dispatch requests.
-
container
private final Container container
This is the container used to handle traditional requests.
-
router
private final Router router
This is the router used to select specific services.
-
-
Constructor Detail
-
RouterContainer
public RouterContainer(Container container, Router router, int threads) throws java.io.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 use- Throws:
java.io.IOException
-
RouterContainer
public RouterContainer(Container container, Router router, int threads, long ping) throws java.io.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:
java.io.IOException
-
-
Method Detail
-
handle
public void handle(Request req, Response resp)
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.
-
-