Package com.slack.api.socket_mode
Interface SocketModeClient
- All Superinterfaces:
java.lang.AutoCloseable,java.io.Closeable
- All Known Implementing Classes:
SocketModeClientJavaWSImpl,SocketModeClientTyrusImpl
public interface SocketModeClient
extends java.io.Closeable
Socket Mode Client
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classSocketModeClient.BackendBuilt-in backend supports. -
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_MESSAGE_PROCESSOR_CONCURRENCYstatic longDEFAULT_SESSION_MONITOR_INTERVAL_MILLISECONDSstatic java.lang.StringEXECUTOR_GROUP_NAME_PREFIXstatic com.google.gson.GsonGSONstatic org.slf4j.LoggerLOGGERstatic com.google.gson.GsonPRETTY_PRINTING -
Method Summary
Modifier and Type Method Description default voidaddEventsApiEnvelopeListener(EnvelopeListener<EventsApiEnvelope> listener)default voidaddInteractiveEnvelopeListener(EnvelopeListener<InteractiveEnvelope> listener)default voidaddSlashCommandsEnvelopeListener(EnvelopeListener<SlashCommandsEnvelope> listener)default voidaddWebSocketCloseListener(WebSocketCloseListener listener)default voidaddWebSocketErrorListener(WebSocketErrorListener listener)default voidaddWebSocketMessageListener(WebSocketMessageListener listener)default voidclose()Closes this Socket Mode client.voidconnect()Connects to the current WSS endpoint and starts a new WebSocket session.default voidconnectToNewEndpoint()Connects to a new WSS endpoint and starts a new WebSocket session.default voiddebugLogRequest(java.lang.String message)default voiddebugLogResponse(java.lang.String message)voiddisconnect()Disconnects from the wss endpoint and abandons the current session.default voidenqueueMessage(java.lang.String message)java.lang.StringgetAppToken()java.util.List<EnvelopeListener<EventsApiEnvelope>>getEventsApiEnvelopeListeners()default java.lang.StringgetExecutorGroupNamePrefix()default com.google.gson.GsongetGson()java.util.List<EnvelopeListener<InteractiveEnvelope>>getInteractiveEnvelopeListeners()default org.slf4j.LoggergetLogger()java.util.concurrent.ScheduledExecutorServicegetMessageProcessorExecutor()SocketModeMessageQueuegetMessageQueue()Returns the message queue for message processor workers.java.util.Optional<java.util.concurrent.ScheduledExecutorService>getSessionMonitorExecutor()SlackgetSlack()java.util.List<EnvelopeListener<SlashCommandsEnvelope>>getSlashCommandsEnvelopeListeners()java.util.List<WebSocketCloseListener>getWebSocketCloseListeners()java.util.List<WebSocketErrorListener>getWebSocketErrorListeners()java.util.List<WebSocketMessageListener>getWebSocketMessageListeners()java.net.URIgetWssUri()Returns the current WSS URI.default voidinitializeMessageProcessorExecutor(int concurrency)default voidinitializeSessionMonitorExecutor(long intervalMillis)booleanisAutoReconnectEnabled()Tries to reconnect to the Socket Mode server if true.booleanisSessionMonitorEnabled()A background job for session maintenance works if true.longmaintainCurrentSession()Maintains the current session in a background job.default voidprocessMessage(java.lang.String message)default voidremoveEventsApiEnvelopeListener(EnvelopeListener<EventsApiEnvelope> listener)default voidremoveInteractiveEnvelopeListener(EnvelopeListener<InteractiveEnvelope> listener)default voidremoveSlashCommandsEnvelopeListener(EnvelopeListener<SlashCommandsEnvelope> listener)default voidremoveWebSocketCloseListener(WebSocketCloseListener listener)default voidremoveWebSocketErrorListener(WebSocketErrorListener listener)default voidremoveWebSocketMessageListener(WebSocketMessageListener listener)default voidrunCloseListenersAndAutoReconnectAsNecessary(java.lang.Integer code, java.lang.String reason)default voidrunErrorListeners(java.lang.Throwable reason)default voidsendSocketModeResponse(SocketModeResponse response)default voidsendSocketModeResponse(java.lang.String message)voidsendWebSocketMessage(java.lang.String message)Sends a text message to the Socket Mode server via the current WebSocket connection.voidsetAppToken(java.lang.String appToken)voidsetAutoReconnectEnabled(boolean autoReconnectEnabled)voidsetMessageProcessorExecutor(java.util.concurrent.ScheduledExecutorService executorService)voidsetMessageQueue(SocketModeMessageQueue messageQueue)voidsetSessionMonitorEnabled(boolean sessionMonitorEnabled)voidsetSessionMonitorExecutor(java.util.Optional<java.util.concurrent.ScheduledExecutorService> executorService)voidsetSlack(Slack slack)voidsetWssUri(java.net.URI wssUri)booleanverifyConnection()Returns true if this client is connected to the Socket Mode server.
-
Field Details
-
DEFAULT_MESSAGE_PROCESSOR_CONCURRENCY
static final int DEFAULT_MESSAGE_PROCESSOR_CONCURRENCY- See Also:
- Constant Field Values
-
DEFAULT_SESSION_MONITOR_INTERVAL_MILLISECONDS
static final long DEFAULT_SESSION_MONITOR_INTERVAL_MILLISECONDS- See Also:
- Constant Field Values
-
LOGGER
static final org.slf4j.Logger LOGGER -
GSON
static final com.google.gson.Gson GSON -
PRETTY_PRINTING
static final com.google.gson.Gson PRETTY_PRINTING -
EXECUTOR_GROUP_NAME_PREFIX
static final java.lang.String EXECUTOR_GROUP_NAME_PREFIX- See Also:
- Constant Field Values
-
-
Method Details
-
connect
void connect() throws java.io.IOExceptionConnects to the current WSS endpoint and starts a new WebSocket session.- Throws:
java.io.IOException
-
verifyConnection
boolean verifyConnection()Returns true if this client is connected to the Socket Mode server. -
connectToNewEndpoint
default void connectToNewEndpoint() throws java.io.IOExceptionConnects to a new WSS endpoint and starts a new WebSocket session.- Throws:
java.io.IOException
-
disconnect
void disconnect() throws java.io.IOExceptionDisconnects from the wss endpoint and abandons the current session.- Throws:
java.io.IOException
-
close
default void close() throws java.io.IOExceptionCloses this Socket Mode client. After calling this method, the instance is no longer available to use.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException
-
getSlack
Slack getSlack() -
setSlack
-
getAppToken
java.lang.String getAppToken() -
setAppToken
void setAppToken(java.lang.String appToken) -
getWssUri
java.net.URI getWssUri()Returns the current WSS URI. -
setWssUri
void setWssUri(java.net.URI wssUri) -
isAutoReconnectEnabled
boolean isAutoReconnectEnabled()Tries to reconnect to the Socket Mode server if true. -
setAutoReconnectEnabled
void setAutoReconnectEnabled(boolean autoReconnectEnabled) -
isSessionMonitorEnabled
boolean isSessionMonitorEnabled()A background job for session maintenance works if true. -
setSessionMonitorEnabled
void setSessionMonitorEnabled(boolean sessionMonitorEnabled) -
getSessionMonitorExecutor
java.util.Optional<java.util.concurrent.ScheduledExecutorService> getSessionMonitorExecutor() -
setSessionMonitorExecutor
void setSessionMonitorExecutor(java.util.Optional<java.util.concurrent.ScheduledExecutorService> executorService) -
getMessageQueue
SocketModeMessageQueue getMessageQueue()Returns the message queue for message processor workers. -
setMessageQueue
-
getMessageProcessorExecutor
java.util.concurrent.ScheduledExecutorService getMessageProcessorExecutor() -
setMessageProcessorExecutor
void setMessageProcessorExecutor(java.util.concurrent.ScheduledExecutorService executorService) -
initializeMessageProcessorExecutor
default void initializeMessageProcessorExecutor(int concurrency) -
initializeSessionMonitorExecutor
default void initializeSessionMonitorExecutor(long intervalMillis) -
sendSocketModeResponse
-
sendSocketModeResponse
default void sendSocketModeResponse(java.lang.String message) -
sendWebSocketMessage
void sendWebSocketMessage(java.lang.String message)Sends a text message to the Socket Mode server via the current WebSocket connection. -
getWebSocketErrorListeners
java.util.List<WebSocketErrorListener> getWebSocketErrorListeners() -
addWebSocketErrorListener
-
removeWebSocketErrorListener
-
runErrorListeners
default void runErrorListeners(java.lang.Throwable reason) -
getWebSocketCloseListeners
java.util.List<WebSocketCloseListener> getWebSocketCloseListeners() -
addWebSocketCloseListener
-
removeWebSocketCloseListener
-
runCloseListenersAndAutoReconnectAsNecessary
default void runCloseListenersAndAutoReconnectAsNecessary(java.lang.Integer code, java.lang.String reason) -
enqueueMessage
default void enqueueMessage(java.lang.String message) -
getWebSocketMessageListeners
java.util.List<WebSocketMessageListener> getWebSocketMessageListeners() -
addWebSocketMessageListener
-
removeWebSocketMessageListener
-
getEventsApiEnvelopeListeners
java.util.List<EnvelopeListener<EventsApiEnvelope>> getEventsApiEnvelopeListeners() -
getInteractiveEnvelopeListeners
java.util.List<EnvelopeListener<InteractiveEnvelope>> getInteractiveEnvelopeListeners() -
getSlashCommandsEnvelopeListeners
java.util.List<EnvelopeListener<SlashCommandsEnvelope>> getSlashCommandsEnvelopeListeners() -
addEventsApiEnvelopeListener
-
removeEventsApiEnvelopeListener
-
addInteractiveEnvelopeListener
-
removeInteractiveEnvelopeListener
-
addSlashCommandsEnvelopeListener
-
removeSlashCommandsEnvelopeListener
-
getLogger
default org.slf4j.Logger getLogger() -
getGson
default com.google.gson.Gson getGson() -
processMessage
default void processMessage(java.lang.String message) throws java.io.IOException- Throws:
java.io.IOException
-
debugLogRequest
default void debugLogRequest(java.lang.String message) -
debugLogResponse
default void debugLogResponse(java.lang.String message) -
getExecutorGroupNamePrefix
default java.lang.String getExecutorGroupNamePrefix() -
maintainCurrentSession
long maintainCurrentSession()Maintains the current session in a background job.see also: initializeSessionMonitorExecutor
- Returns:
- unix time to check next time
-