Package-level declarations
Websocket utility.
Connect to websocket.
To work with websocket use the following code example.
val networkManager: NetwrokManager
val webSocketManager: WebSocketManager = networkManager.webSocketManager
val listener: SockJSWSListener = webSocketManager.createWsListener(
shareId = null, // For shared link events
useSSL = true, // Default true.
reconnectOnFailure = true, // Default true
// Groups of events that will arrive via the websocket.
// Some groups are used by other libraries.
// If you don't use some of them, just remove them from the set.
//
// The example shows the default list.
eventsGroups = setOf(
WebSocketManager.Group.PHOTOS, // Used by Photo Library
WebSocketManager.Group.FAMILY, // Used by Photo Library
WebSocketManager.Group.FILES, // Used by Files Library
)
)
// ...
// Monitor websocket state
listener.stateFlow.collect { state ->
log.v("WS state updated - $state")
}
// To monitor websocket output use the following code example.
listener.eventFlow.collect { messages -> // messages: List<JSONObject>
log.v("WS messages - $messages")
}
webSocketManager.connect()
// ...
webSocketManager.disconnect()Content copied to clipboard
Handle WS Events
Libraries have their own ws event handlers.
Photos Handler
val listener: SockJSWSListener
val photoManager: PhotoManager
val fileManager: FileManager
listener.eventFlow.collect { messages -> // messages: List<JSONObject>
log.v("WS messages - $messages")
mmessages.forEach {
photoManager.ws.handle(it)
fileManager.ws.handle(it)
}
}Content copied to clipboard
Types
Link copied to clipboard
interface SockJSWSListener
Link copied to clipboard
data class WebSocketEvent(val type: WebSocketEvent.Type, val group: WSGroup, val userId: Long, val timestamp: Long, val json: JSONObject)
Web socket event representation.
Link copied to clipboard
interface WebSocketManager
Link copied to clipboard