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()

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)
}
}

Types

Link copied to clipboard
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
Link copied to clipboard
Link copied to clipboard

Web socket event group representation.