VMSPusherApi. Сокет
Использует версию com.pusher:pusher-java-client:2.0.2 с некоторыми исправлениями для целей VMSMobileSDK.
Мы поддерживаем minSdk 23–6 Android. Версия 2.4.4 для Android 7 и выше.
https://github.com/pusher/pusher-websocket-java
Инициализация VMSPusherApi.kt
VMSMobileSDK.pusherApi.Builder(
socketUrl: String,
appKey: String,
userToken: String,
userId: Int,
accessTokenId: String)
socketUrl
— указанный базовый URL, URL сокета для подключения к WebSocket. См. SocketApi
, чтобы узнать, как получить эту информацию.
appKey
— ключ приложения для подключения к WebSocket. См. SocketApi
, чтобы узнать, как получить эту информацию.
userToken
— токен текущего пользователя.
userId
— идентификатор текущего пользователя.
accessTokenId
— идентификатор токена доступа текущего пользователя
Одноэлементный объект VMSPusherApi
onConnect()
— используйте эту функцию для подключения к WebSocket.
onDisconnect()
— используйте эту функцию для отключения от WebSocket.
VMSSocketEvents.kt
vmsLogoutSocket
— если пользователь вышел из системы (например, сеанс был удален).
vmsCamerasSocket
— если список камер был обновлен для этого пользователя.
vmsCamerasSocket
— если для этого пользователя был обновлен список групп камер.
vmsPermissionsSocket
— если список разрешений был обновлен для этого пользователя.
vmsMarksSocket
— в случае создания, обновления, удаления меток/событий камеры.
vmsArchiveLinkSocket
— если URL загрузки архива был сгенерирован успешно.
vmsIntercomKeySocket
— в случае подтверждения ключа внутренней связи или ошибок.
vmsIntercomSocket
— в случае сохранения, переименования, обновления или удаления домофона.
vmsVisitorSocket
— в случае добавления или удаления кода нового посетителя.
vmsVisitHistorySocket
— если звонок был добавлен или удален из истории звонков.
vmsCancelCallSocket
— в случае получения сокета отмены для внутренней связи по замкнутому вызову.
vmsErrorSocket
— в случае, если произошла ошибка сокета и необходимо вызвать getSocketUrl(), то в случае успешного перестроения pusher-socket и повторного подключения используйте этот код:
VMSMobileSDK.pusherApi.Builder(
getSocketUrlFull(),
getAppKeyFull(),
userStorage.token,
userStorage.userData?.id ?: 0,
userStorage.userData?.access_token_id ?: "",
).apply {
VMSMobileSDK.pusherApi.isNeedReconnectSocket = false
VMSMobileSDK.pusherApi.onConnect()
}