public class SpincastWebsocketEndpoint extends Object implements IWebsocketEndpoint
| Modifier and Type | Field and Description |
|---|---|
static String |
EXCHANGE_VARIABLE_PEER_ID |
protected org.slf4j.Logger |
logger |
| Constructor and Description |
|---|
SpincastWebsocketEndpoint(String endpointId,
IWebsocketEndpointHandler eventsHandler,
IUndertowWebsocketEndpointWriterFactory undertowWebsocketEndpointWriterFactory,
ISpincastUndertowConfig spincastUndertowConfig,
ISpincastUndertowUtils spincastUndertowUtils)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
closeEndpoint() |
void |
closeEndpoint(int closingCode,
String closingReason) |
void |
closePeer(String peerId) |
void |
closePeer(String peerId,
int closingCode,
String closingReason) |
String |
getEndpointId() |
protected IWebsocketEndpointHandler |
getEventsHandler() |
protected Object |
getNewPeerIdLock(String peerId)
Gets the creation lock for a peer id.
|
Set<String> |
getPeersIds() |
protected ISpincastUndertowConfig |
getSpincastUndertowConfig() |
protected ISpincastUndertowUtils |
getSpincastUndertowUtils() |
protected ExecutorService |
getThreadExecutorForAppEvents()
The ExecutorService to use to
send events to the application.
|
protected int |
getThreadExecutorForAppEventsThreadNumber()
The maximum number of concurrent threads used when
sending events to the application.
|
protected ThreadFactory |
getThreadExecutorForAppEventsThreadThreadFactory()
The ThreadFactory to use for the Executor that
sends events to the application.
|
protected int |
getThreadExecutorForAppEventsTimeoutAmount()
The timeout amount before cancelling a task when
sending events to the application.
|
protected TimeUnit |
getThreadExecutorForAppEventsTimeoutTimeUnit()
The timeout unit before cancelling a task when
sending events to the application.
|
protected IUndertowWebsocketEndpointWriterFactory |
getUndertowWebsocketEndpointWriterFactory() |
protected IUndertowWebsocketEndpointWriter |
getUndertowWebsocketWriter() |
protected Map<String,io.undertow.websockets.core.WebSocketChannel> |
getWebSocketChannelByPeerId() |
protected io.undertow.websockets.WebSocketProtocolHandshakeHandler |
getWebSocketProtocolHandshakeHandler()
The handler to use for the Websocket connection.
|
void |
handleConnectionRequest(io.undertow.server.HttpServerExchange exchange,
String peerId) |
protected void |
init() |
protected void |
managePeersWriteConnectionClosed(Set<String> peerIds)
Called when a write operation detected a closed connection
on some peers.
|
protected void |
removePeerChannelAndSendPeerClosedAppEvent(String peerId) |
protected void |
sendAppEventInNewThread(Runnable runnable)
Sends an event to the application in a separated thread.
|
void |
sendMessage(byte[] message) |
void |
sendMessage(Set<String> peerIds,
byte[] message) |
void |
sendMessage(Set<String> peerIds,
String message) |
void |
sendMessage(String message) |
void |
sendMessage(String peerId,
byte[] message) |
void |
sendMessage(String peerId,
String message) |
void |
sendMessageExcept(Set<String> peerIdsToRemove,
byte[] message) |
void |
sendMessageExcept(Set<String> peerIdsToRemove,
String message) |
void |
sendMessageExcept(String peerId,
byte[] message) |
void |
sendMessageExcept(String peerId,
String message) |
protected void |
sendOnBytesMessageAppEvent(String peerId,
byte[] message)
Sends a "byte[] message" event to the app.
|
protected void |
sendOnPeerConnectedAppEvent(String peerId)
Sends a "Peer connected " event to the app.
|
protected void |
sendOnStringMessageAppEvent(String peerId,
String message)
Sends a "String message" event to the app.
|
protected void |
sendPeerClosedAppEvent(String peerId)
Sends a "peer closed" event to the app.
|
protected void |
startSendingPings()
Starts sending automatic pings to the peers.
|
protected void |
stopSendingPings() |
protected void |
validateWebsocketClosingCode(int closingCode)
Is the Websocket closing code valid?
|
protected final org.slf4j.Logger logger
public static final String EXCHANGE_VARIABLE_PEER_ID
public SpincastWebsocketEndpoint(String endpointId, IWebsocketEndpointHandler eventsHandler, IUndertowWebsocketEndpointWriterFactory undertowWebsocketEndpointWriterFactory, ISpincastUndertowConfig spincastUndertowConfig, ISpincastUndertowUtils spincastUndertowUtils)
@Inject protected void init()
protected Map<String,io.undertow.websockets.core.WebSocketChannel> getWebSocketChannelByPeerId()
protected IWebsocketEndpointHandler getEventsHandler()
protected IUndertowWebsocketEndpointWriterFactory getUndertowWebsocketEndpointWriterFactory()
protected ISpincastUndertowConfig getSpincastUndertowConfig()
protected ISpincastUndertowUtils getSpincastUndertowUtils()
protected IUndertowWebsocketEndpointWriter getUndertowWebsocketWriter()
protected Object getNewPeerIdLock(String peerId)
public String getEndpointId()
getEndpointId in interface IWebsocketEndpointManagerpublic Set<String> getPeersIds()
getPeersIds in interface IWebsocketEndpointManagerpublic void closePeer(String peerId)
closePeer in interface IWebsocketEndpointManagerpublic void closePeer(String peerId, int closingCode, String closingReason)
closePeer in interface IWebsocketEndpointManagerprotected void removePeerChannelAndSendPeerClosedAppEvent(String peerId)
protected void managePeersWriteConnectionClosed(Set<String> peerIds)
public void closeEndpoint()
closeEndpoint in interface IWebsocketEndpointManagerpublic void closeEndpoint(int closingCode,
String closingReason)
closeEndpoint in interface IWebsocketEndpointManagerprotected void validateWebsocketClosingCode(int closingCode)
an - expcetion is the code is not valid.protected void startSendingPings()
protected void stopSendingPings()
public void sendMessage(String message)
sendMessage in interface IWebsocketEndpointWriterpublic void sendMessage(String peerId, String message)
sendMessage in interface IWebsocketEndpointWriterpublic void sendMessageExcept(String peerId, String message)
sendMessageExcept in interface IWebsocketEndpointWriterpublic void sendMessageExcept(Set<String> peerIdsToRemove, String message)
sendMessageExcept in interface IWebsocketEndpointWriterpublic void sendMessage(Set<String> peerIds, String message)
sendMessage in interface IWebsocketEndpointWriterpublic void sendMessage(byte[] message)
sendMessage in interface IWebsocketEndpointWriterpublic void sendMessage(String peerId, byte[] message)
sendMessage in interface IWebsocketEndpointWriterpublic void sendMessageExcept(String peerId, byte[] message)
sendMessageExcept in interface IWebsocketEndpointWriterpublic void sendMessageExcept(Set<String> peerIdsToRemove, byte[] message)
sendMessageExcept in interface IWebsocketEndpointWriterpublic void sendMessage(Set<String> peerIds, byte[] message)
sendMessage in interface IWebsocketEndpointWriterpublic void handleConnectionRequest(io.undertow.server.HttpServerExchange exchange,
String peerId)
handleConnectionRequest in interface IWebsocketEndpointprotected io.undertow.websockets.WebSocketProtocolHandshakeHandler getWebSocketProtocolHandshakeHandler()
protected void sendOnPeerConnectedAppEvent(String peerId)
protected void sendOnStringMessageAppEvent(String peerId, String message)
protected void sendOnBytesMessageAppEvent(String peerId, byte[] message)
protected void sendPeerClosedAppEvent(String peerId)
protected void sendAppEventInNewThread(Runnable runnable)
protected int getThreadExecutorForAppEventsTimeoutAmount()
protected TimeUnit getThreadExecutorForAppEventsTimeoutTimeUnit()
protected ExecutorService getThreadExecutorForAppEvents()
protected int getThreadExecutorForAppEventsThreadNumber()
protected ThreadFactory getThreadExecutorForAppEventsThreadThreadFactory()
null
to use the default one.Copyright © 2016. All rights reserved.