public class SpincastWebsocketEndpoint extends Object implements WebsocketEndpoint
| Modifier and Type | Field and Description |
|---|---|
static String |
EXCHANGE_VARIABLE_PEER_ID |
protected org.slf4j.Logger |
logger |
| Constructor and Description |
|---|
SpincastWebsocketEndpoint(String endpointId,
WebsocketEndpointHandler eventsHandler,
UndertowWebsocketEndpointWriterFactory undertowWebsocketEndpointWriterFactory,
SpincastUndertowConfig spincastUndertowConfig,
SpincastUndertowUtils spincastUndertowUtils)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
closeEndpoint() |
void |
closeEndpoint(boolean sendClosingMessageToPeers) |
void |
closeEndpoint(int closingCode,
String closingReason) |
protected void |
closeEndpoint(int closingCode,
String closingReason,
boolean sendClosingMessageToPeers) |
void |
closePeer(String peerId) |
void |
closePeer(String peerId,
int closingCode,
String closingReason) |
String |
getEndpointId() |
protected WebsocketEndpointHandler |
getEventsHandler() |
protected Object |
getNewPeerIdLock(String peerId)
Gets the creation lock for a peer id.
|
Set<String> |
getPeersIds() |
protected SpincastUndertowConfig |
getSpincastUndertowConfig() |
protected SpincastUndertowUtils |
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 UndertowWebsocketEndpointWriterFactory |
getUndertowWebsocketEndpointWriterFactory() |
protected UndertowWebsocketEndpointWriter |
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() |
boolean |
isClosed() |
boolean |
isClosing() |
protected void |
managePeersWriteConnectionClosed(Set<String> peerIds)
Called when a write operation detected a closed connection
on some peers.
|
protected void |
removePeerChannel(String peerId) |
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, WebsocketEndpointHandler eventsHandler, UndertowWebsocketEndpointWriterFactory undertowWebsocketEndpointWriterFactory, SpincastUndertowConfig spincastUndertowConfig, SpincastUndertowUtils spincastUndertowUtils)
@Inject protected void init()
protected Map<String,io.undertow.websockets.core.WebSocketChannel> getWebSocketChannelByPeerId()
protected WebsocketEndpointHandler getEventsHandler()
protected UndertowWebsocketEndpointWriterFactory getUndertowWebsocketEndpointWriterFactory()
protected SpincastUndertowConfig getSpincastUndertowConfig()
protected SpincastUndertowUtils getSpincastUndertowUtils()
protected UndertowWebsocketEndpointWriter getUndertowWebsocketWriter()
protected Object getNewPeerIdLock(String peerId)
public String getEndpointId()
getEndpointId in interface WebsocketEndpointManagerpublic Set<String> getPeersIds()
getPeersIds in interface WebsocketEndpointManagerpublic void closePeer(String peerId)
closePeer in interface WebsocketEndpointManagerpublic void closePeer(String peerId, int closingCode, String closingReason)
closePeer in interface WebsocketEndpointManagerprotected void removePeerChannelAndSendPeerClosedAppEvent(String peerId)
protected void removePeerChannel(String peerId)
protected void managePeersWriteConnectionClosed(Set<String> peerIds)
public boolean isClosing()
isClosing in interface WebsocketEndpointManagerpublic boolean isClosed()
isClosed in interface WebsocketEndpointManagerpublic void closeEndpoint()
closeEndpoint in interface WebsocketEndpointManagerpublic void closeEndpoint(boolean sendClosingMessageToPeers)
closeEndpoint in interface WebsocketEndpointManagerpublic void closeEndpoint(int closingCode,
String closingReason)
closeEndpoint in interface WebsocketEndpointManagerprotected void closeEndpoint(int closingCode,
String closingReason,
boolean sendClosingMessageToPeers)
protected 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 WebsocketEndpointWriterpublic void sendMessage(String peerId, String message)
sendMessage in interface WebsocketEndpointWriterpublic void sendMessageExcept(String peerId, String message)
sendMessageExcept in interface WebsocketEndpointWriterpublic void sendMessageExcept(Set<String> peerIdsToRemove, String message)
sendMessageExcept in interface WebsocketEndpointWriterpublic void sendMessage(Set<String> peerIds, String message)
sendMessage in interface WebsocketEndpointWriterpublic void sendMessage(byte[] message)
sendMessage in interface WebsocketEndpointWriterpublic void sendMessage(String peerId, byte[] message)
sendMessage in interface WebsocketEndpointWriterpublic void sendMessageExcept(String peerId, byte[] message)
sendMessageExcept in interface WebsocketEndpointWriterpublic void sendMessageExcept(Set<String> peerIdsToRemove, byte[] message)
sendMessageExcept in interface WebsocketEndpointWriterpublic void sendMessage(Set<String> peerIds, byte[] message)
sendMessage in interface WebsocketEndpointWriterpublic void handleConnectionRequest(io.undertow.server.HttpServerExchange exchange,
String peerId)
handleConnectionRequest in interface WebsocketEndpointprotected 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 © 2019. All rights reserved.