VMSPusherApi. Android
Uses com.pusher:pusher-java-client:2.0.2 version with some fixes for VMSMobileSDK purposes.
We support minSdk 23 - 6 Android. 2.4.4 version for Android 7 and above.
https://github.com/pusher/pusher-websocket-java
Initialization VMSPusherApi.kt
VMSMobileSDK.pusherApi.Builder(
socketUrl: String,
appKey: String,
userToken: String,
userId: Int,
accessTokenId: String)
socketUrl
- specific for provided base url, socket url to connect to WebSocket. See SocketApi
to know how to get this info.
appKey
- app key to connect to WebSocket. See SocketApi
to know how to get this info.
userToken
- token of current user.
userId
- id of current user.
accessTokenId
- access token id of current user
VMSPusherApi singleton object
onConnect()
- use this function to connect to WebSocket
onDisconnect()
- use this function to disconnect from WebSocket
VMSSocketEvents.kt
vmsLogoutSocket
- In case user was logged out from system (ex. the session was deleted).
vmsCamerasSocket
- In case list of cameras was updated for this user.
vmsCamerasSocket
- In case list of groups cameras was updated for this user.
vmsPermissionsSocket
- In case list of permissions was updated for this user.
vmsMarksSocket
- In case created, updated, deleted marks/events of camera.
vmsArchiveLinkSocket
- In case archive download url was generated successfully.
vmsIntercomKeySocket
- In case intercom key confirmed or errors.
vmsIntercomSocket
- In case intercom stored, renamed, updated, deleted.
vmsVisitorSocket
- In case code of new visitor was added or deleted.
vmsVisitHistorySocket
- In case call was added or deleted for calls history.
vmsCancelCallSocket
- In case getting cancel socket for close ring intercom.
vmsErrorSocket
- In case socket error happens and need to call getSocketUrl(), than if it successful rebuild pusher-socket and reconnect use this code:
VMSMobileSDK.pusherApi.Builder(
getSocketUrlFull(),
getAppKeyFull(),
userStorage.token,
userStorage.userData?.id ?: 0,
userStorage.userData?.access_token_id ?: "",
).apply {
VMSMobileSDK.pusherApi.isNeedReconnectSocket = false
VMSMobileSDK.pusherApi.onConnect()
}