Class WebsocketConnectionProxy
- java.lang.Object
-
- pl.morgwai.base.servlet.guice.scopes.WebsocketConnectionProxy
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Session
public class WebsocketConnectionProxy extends Object implements Session
DecoratesMessageHandler
s passed toaddMessageHandler(MessageHandler)
method family withWebsocketEventContext
tracking.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
WebsocketConnectionProxy.Factory
SPI
-provided factory for proxies, that wrapspecific implementation
ofSession
to enable its specific features.
-
Field Summary
Fields Modifier and Type Field Description protected ContextTracker<ContainerCallContext>
ctxTracker
protected HttpSession
httpSession
protected Session
wrappedConnection
-
Constructor Summary
Constructors Modifier Constructor Description protected
WebsocketConnectionProxy(Session connection, ContextTracker<ContainerCallContext> containerCallContextTracker, boolean remote)
Constructs a new proxy forconnection
.
-
Method Summary
-
-
-
Field Detail
-
wrappedConnection
protected final Session wrappedConnection
-
ctxTracker
protected final ContextTracker<ContainerCallContext> ctxTracker
-
httpSession
protected final HttpSession httpSession
-
-
Constructor Detail
-
WebsocketConnectionProxy
protected WebsocketConnectionProxy(Session connection, ContextTracker<ContainerCallContext> containerCallContextTracker, boolean remote)
Constructs a new proxy forconnection
.- Parameters:
remote
- weatherconnection
is a remoteSession
from another cluster node. In such case, there will be no attempt to retrievehttpSession
fromuserProperties
. This is useful when creating proxies for remoteSession
s ingetOpenSessions()
in a clustered environment.
-
-
Method Detail
-
getWrappedConnection
public Session getWrappedConnection()
-
getOpenSessions
public Set<Session> getOpenSessions()
- Specified by:
getOpenSessions
in interfaceSession
-
getUserProperties
public Map<String,Object> getUserProperties()
- Specified by:
getUserProperties
in interfaceSession
-
addMessageHandler
public void addMessageHandler(MessageHandler handler)
- Specified by:
addMessageHandler
in interfaceSession
-
addMessageHandler
public <T> void addMessageHandler(Class<T> messageClass, MessageHandler.Whole<T> handler)
- Specified by:
addMessageHandler
in interfaceSession
-
addMessageHandler
public <T> void addMessageHandler(Class<T> messageClass, MessageHandler.Partial<T> handler)
- Specified by:
addMessageHandler
in interfaceSession
-
getContainer
public WebSocketContainer getContainer()
- Specified by:
getContainer
in interfaceSession
-
getMessageHandlers
public Set<MessageHandler> getMessageHandlers()
- Specified by:
getMessageHandlers
in interfaceSession
-
removeMessageHandler
public void removeMessageHandler(MessageHandler handler)
- Specified by:
removeMessageHandler
in interfaceSession
-
getProtocolVersion
public String getProtocolVersion()
- Specified by:
getProtocolVersion
in interfaceSession
-
getNegotiatedSubprotocol
public String getNegotiatedSubprotocol()
- Specified by:
getNegotiatedSubprotocol
in interfaceSession
-
getNegotiatedExtensions
public List<Extension> getNegotiatedExtensions()
- Specified by:
getNegotiatedExtensions
in interfaceSession
-
getMaxIdleTimeout
public long getMaxIdleTimeout()
- Specified by:
getMaxIdleTimeout
in interfaceSession
-
setMaxIdleTimeout
public void setMaxIdleTimeout(long milliseconds)
- Specified by:
setMaxIdleTimeout
in interfaceSession
-
setMaxBinaryMessageBufferSize
public void setMaxBinaryMessageBufferSize(int length)
- Specified by:
setMaxBinaryMessageBufferSize
in interfaceSession
-
getMaxBinaryMessageBufferSize
public int getMaxBinaryMessageBufferSize()
- Specified by:
getMaxBinaryMessageBufferSize
in interfaceSession
-
setMaxTextMessageBufferSize
public void setMaxTextMessageBufferSize(int length)
- Specified by:
setMaxTextMessageBufferSize
in interfaceSession
-
getMaxTextMessageBufferSize
public int getMaxTextMessageBufferSize()
- Specified by:
getMaxTextMessageBufferSize
in interfaceSession
-
getAsyncRemote
public RemoteEndpoint.Async getAsyncRemote()
- Specified by:
getAsyncRemote
in interfaceSession
-
getBasicRemote
public RemoteEndpoint.Basic getBasicRemote()
- Specified by:
getBasicRemote
in interfaceSession
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceSession
- Throws:
IOException
-
close
public void close(CloseReason closeReason) throws IOException
- Specified by:
close
in interfaceSession
- Throws:
IOException
-
getRequestURI
public URI getRequestURI()
- Specified by:
getRequestURI
in interfaceSession
-
getRequestParameterMap
public Map<String,List<String>> getRequestParameterMap()
- Specified by:
getRequestParameterMap
in interfaceSession
-
getQueryString
public String getQueryString()
- Specified by:
getQueryString
in interfaceSession
-
getPathParameters
public Map<String,String> getPathParameters()
- Specified by:
getPathParameters
in interfaceSession
-
getUserPrincipal
public Principal getUserPrincipal()
- Specified by:
getUserPrincipal
in interfaceSession
-
-