public class JettyWebSocketSession extends AbstractWebSocketSession<org.eclipse.jetty.websocket.api.Session>
WebSocketSession
for use with the Jetty 9.4 WebSocket API.idGenerator, logger
Constructor and Description |
---|
JettyWebSocketSession(Map<String,Object> attributes)
Create a new
JettyWebSocketSession instance. |
JettyWebSocketSession(Map<String,Object> attributes,
Principal user)
Create a new
JettyWebSocketSession instance associated with the given user. |
Modifier and Type | Method and Description |
---|---|
protected void |
closeInternal(CloseStatus status) |
String |
getAcceptedProtocol()
Return the negotiated sub-protocol.
|
int |
getBinaryMessageSizeLimit()
Get the configured maximum size for an incoming binary message.
|
List<WebSocketExtension> |
getExtensions()
Determine the negotiated extensions.
|
HttpHeaders |
getHandshakeHeaders()
Return the headers used in the handshake request (never
null ). |
String |
getId()
Return a unique session identifier.
|
InetSocketAddress |
getLocalAddress()
Return the address on which the request was received.
|
Principal |
getPrincipal()
Return a
Principal instance containing the name
of the authenticated user. |
InetSocketAddress |
getRemoteAddress()
Return the address of the remote client.
|
int |
getTextMessageSizeLimit()
Get the configured maximum size for an incoming text message.
|
URI |
getUri()
Return the URI used to open the WebSocket connection.
|
void |
initializeNativeSession(org.eclipse.jetty.websocket.api.Session session) |
boolean |
isOpen()
Whether the underlying connection is open.
|
protected void |
sendBinaryMessage(BinaryMessage message) |
protected void |
sendPingMessage(PingMessage message) |
protected void |
sendPongMessage(PongMessage message) |
protected void |
sendTextMessage(TextMessage message) |
void |
setBinaryMessageSizeLimit(int messageSizeLimit)
This method is a no-op for Jetty.
|
void |
setTextMessageSizeLimit(int messageSizeLimit)
This method is a no-op for Jetty.
|
checkNativeSessionInitialized, close, close, getAttributes, getNativeSession, getNativeSession, sendMessage, toString
public JettyWebSocketSession(Map<String,Object> attributes)
JettyWebSocketSession
instance.attributes
- the attributes from the HTTP handshake to associate with the WebSocket sessionpublic JettyWebSocketSession(Map<String,Object> attributes, @Nullable Principal user)
JettyWebSocketSession
instance associated with the given user.attributes
- the attributes from the HTTP handshake to associate with the WebSocket
session; the provided attributes are copied, the original map is not used.user
- the user associated with the session; if null
we'll fallback on the
user available via Session.getUpgradeRequest()
public String getId()
WebSocketSession
@Nullable public URI getUri()
WebSocketSession
public HttpHeaders getHandshakeHeaders()
WebSocketSession
null
).public String getAcceptedProtocol()
WebSocketSession
null
if no protocol
was specified or negotiated successfullypublic List<WebSocketExtension> getExtensions()
WebSocketSession
public Principal getPrincipal()
WebSocketSession
Principal
instance containing the name
of the authenticated user.
If the user has not been authenticated, the method returns null
.
public InetSocketAddress getLocalAddress()
WebSocketSession
public InetSocketAddress getRemoteAddress()
WebSocketSession
public void setTextMessageSizeLimit(int messageSizeLimit)
Session.getPolicy()
, the
returned WebSocketPolicy
is read-only and changing it has no effect.public int getTextMessageSizeLimit()
WebSocketSession
public void setBinaryMessageSizeLimit(int messageSizeLimit)
Session.getPolicy()
, the
returned WebSocketPolicy
is read-only and changing it has no effect.public int getBinaryMessageSizeLimit()
WebSocketSession
public boolean isOpen()
WebSocketSession
public void initializeNativeSession(org.eclipse.jetty.websocket.api.Session session)
initializeNativeSession
in class AbstractWebSocketSession<org.eclipse.jetty.websocket.api.Session>
protected void sendTextMessage(TextMessage message) throws IOException
sendTextMessage
in class AbstractWebSocketSession<org.eclipse.jetty.websocket.api.Session>
IOException
protected void sendBinaryMessage(BinaryMessage message) throws IOException
sendBinaryMessage
in class AbstractWebSocketSession<org.eclipse.jetty.websocket.api.Session>
IOException
protected void sendPingMessage(PingMessage message) throws IOException
sendPingMessage
in class AbstractWebSocketSession<org.eclipse.jetty.websocket.api.Session>
IOException
protected void sendPongMessage(PongMessage message) throws IOException
sendPongMessage
in class AbstractWebSocketSession<org.eclipse.jetty.websocket.api.Session>
IOException
protected void closeInternal(CloseStatus status) throws IOException
closeInternal
in class AbstractWebSocketSession<org.eclipse.jetty.websocket.api.Session>
IOException