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