Class SockJsServiceRegistration
EnableWebSocket
and
WebSocketConfigurer
setup.- Since:
- 4.0
- Author:
- Rossen Stoyanchev
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected SockJsService
protected TaskScheduler
Return the TaskScheduler, if configured.protected SockJsServiceRegistration
setAllowedOriginPatterns
(String... allowedOriginPatterns) Configure allowedOrigin
pattern header values.protected SockJsServiceRegistration
setAllowedOrigins
(String... allowedOrigins) Configure allowedOrigin
header values.setClientLibraryUrl
(String clientLibraryUrl) Transports with no native cross-domain communication (for example, "eventsource", "htmlfile") must get a simple page from the "foreign" domain in an invisibleiframe
so that code in theiframe
can run from a domain local to the SockJS server.setDisconnectDelay
(long disconnectDelay) The amount of time in milliseconds before a client is considered disconnected after not having a receiving connection, i.e.setHeartbeatTime
(long heartbeatTime) The amount of time in milliseconds when the server has not sent any messages and after which the server should send a heartbeat frame to the client in order to keep the connection from breaking.setHttpMessageCacheSize
(int httpMessageCacheSize) The number of server-to-client messages that a session can cache while waiting for the next HTTP polling request from the client.setInterceptors
(HandshakeInterceptor... interceptors) The codec to use for encoding and decoding SockJS messages.setSessionCookieNeeded
(boolean sessionCookieNeeded) The SockJS protocol requires a server to respond to the initial "/info" request from clients with a "cookie_needed" boolean property that indicates whether the use of a JSESSIONID cookie is required for the application to function correctly, for example, for load balancing or in Java Servlet containers for the use of an HTTP session.setStreamBytesLimit
(int streamBytesLimit) Streaming transports save responses on the client side and don't free memory used by delivered messages.setSuppressCors
(boolean suppressCors) This option can be used to disable automatic addition of CORS headers for SockJS requests.setTaskScheduler
(TaskScheduler scheduler) A scheduler instance to use for scheduling SockJS heart-beats.setTransportHandlerOverrides
(TransportHandler... handlers) setTransportHandlers
(TransportHandler... handlers) setWebSocketEnabled
(boolean webSocketEnabled) Some load balancers don't support WebSocket.
-
Constructor Details
-
SockJsServiceRegistration
public SockJsServiceRegistration()
-
-
Method Details
-
setTaskScheduler
A scheduler instance to use for scheduling SockJS heart-beats. -
setClientLibraryUrl
Transports with no native cross-domain communication (for example, "eventsource", "htmlfile") must get a simple page from the "foreign" domain in an invisibleiframe
so that code in theiframe
can run from a domain local to the SockJS server. Since theiframe
needs to load the SockJS JavaScript client library, this property allows specifying where to load it from.By default this is set to point to "https://cdn.jsdelivr.net/sockjs/1.0.0/sockjs.min.js". However, it can also be set to point to a URL served by the application.
Note that it's possible to specify a relative URL in which case the URL must be relative to the
iframe
URL. For example assuming a SockJS endpoint mapped to "/sockjs", and resultingiframe
URL "/sockjs/iframe.html", then the relative URL must start with "../../" to traverse up to the location above the SockJS mapping. In case of a prefix-based Servlet mapping one more traversals may be needed. -
setStreamBytesLimit
Streaming transports save responses on the client side and don't free memory used by delivered messages. Such transports need to recycle the connection once in a while. This property sets a minimum number of bytes that can be sent over a single HTTP streaming request before it will be closed. After that client will open a new request. Setting this value to one effectively disables streaming and will make streaming transports to behave like polling transports.The default value is 128K (i.e. 128 * 1024).
-
setSessionCookieNeeded
The SockJS protocol requires a server to respond to the initial "/info" request from clients with a "cookie_needed" boolean property that indicates whether the use of a JSESSIONID cookie is required for the application to function correctly, for example, for load balancing or in Java Servlet containers for the use of an HTTP session.This is especially important for IE 8,9 that support XDomainRequest -- a modified AJAX/XHR -- that can do requests across domains but does not send any cookies. In those cases, the SockJS client prefers the "iframe-htmlfile" transport over "xdr-streaming" in order to be able to send cookies.
The default value is "true" to maximize the chance for applications to work correctly in IE 8,9 with support for cookies (and the JSESSIONID cookie in particular). However, an application can choose to set this to "false" if the use of cookies (and HTTP session) is not required.
-
setHeartbeatTime
The amount of time in milliseconds when the server has not sent any messages and after which the server should send a heartbeat frame to the client in order to keep the connection from breaking.The default value is 25,000 (25 seconds).
-
setDisconnectDelay
The amount of time in milliseconds before a client is considered disconnected after not having a receiving connection, i.e. an active connection over which the server can send data to the client.The default value is 5000.
-
setHttpMessageCacheSize
The number of server-to-client messages that a session can cache while waiting for the next HTTP polling request from the client. All HTTP transports use this property since even streaming transports recycle HTTP requests periodically.The amount of time between HTTP requests should be relatively brief and will not exceed the allows disconnect delay (see
setDisconnectDelay(long)
), 5 seconds by default.The default size is 100.
-
setWebSocketEnabled
Some load balancers don't support WebSocket. This option can be used to disable the WebSocket transport on the server side.The default value is "true".
-
setTransportHandlers
-
setTransportHandlerOverrides
-
setInterceptors
-
setAllowedOrigins
Configure allowedOrigin
header values.- Since:
- 4.1.2
-
setAllowedOriginPatterns
Configure allowedOrigin
pattern header values.- Since:
- 5.3.2
-
setSuppressCors
This option can be used to disable automatic addition of CORS headers for SockJS requests.The default value is "false".
- Since:
- 5.3.23
-
setMessageCodec
The codec to use for encoding and decoding SockJS messages.By default
Jackson2SockJsMessageCodec
is used requiring the Jackson library to be present on the classpath.- Parameters:
codec
- the codec to use.- Since:
- 4.1
-
getSockJsService
-
getTaskScheduler
Return the TaskScheduler, if configured.
-