VMSPusherApi
Используется pusher-websocket-swift версии 10.0.1 с некоторыми исправлениями для целей VMSMobileSDK
.
https://github.com/pusher/pusher-websocket-swift/tree/master
Инициализация
init(baseUrl: String,
socketUrl: String,
appKey: String,
userToken: String,
userId: Int,
accessTokenId: String)
baseUrl
— базовый URL для подключения к серверу. Используйте тот же самый, что вы использовали при инициализации VMS
socketUrl
— специально для предоставленного базового URL, URL сокета для подключения к WebSocket. См. SocketApi
, чтобы узнать, как получить эту информацию
appKey
— ключ приложения для подключения к WebSocket. См. SocketApi
, чтобы узнать, как получить эту информацию
userToken
— токен текущего пользователя
userId
— идентификатор текущего пользователя
accessTokenId
— идентификатор токена доступа текущего пользователя
VMSSocketManager
Ответ VMSPusherApi
на протокол VMSSocketManager
.
isConnected() -> Bool
— возвращает, подключен сокет или нет
connect()
— используйте эту функцию для подключения к WebSocket
disconnect()
— используйте эту функцию для отключения от WebSocket
VMSSocketManagerDelegate
VMSPusherApi
использует VMSSocketManagerDelegate
.
changedConnectionState(from old: ConnectionState, to new: ConnectionState)
— реализуйте этот метод для отслеживания изменения статуса соединения
receivedError(error: PusherError)
— реализуйте этот метод для получения ошибок от pusher
receivedAppSocket(socket: VMSAppSocketData)
— реализуйте этот метод для получения сокетов VMSAppSocketType
receivedIntercomSocket(socket: VMSIntercomSocketData)
— реализуйте этот метод для получения сокетов VMSIntercomPushTypes
VMSAppSocketData
В случае, если список камер был обновлен для этого пользователя.
case camerasUpdate(VMSCamerasUpdateSocket)
struct VMSCamerasUpdateSocket {
public let detached: [Int]? ///
public let attached: [Int]? ///
}
detached
— список идентификаторов камер, которые были удалены из учетной записи этого пользователя
attached
— список идентификаторов камер, которые были добавлены в учетную запись этого пользователя
В случае, если разрешения пользователя были обновлены.
case permissionsUpdate
В случае, если группы были обновлены для этого пользователя.
case groupsUpdate
В случае, если запрос syncGroups(for cameraId:, groupIds:,complete:)
вернул значение async
и был успешно выполненным. Для получения более подробной информации см. GroupApi
.
case cameraGroupsSynced
В случае удачного манипулирования событиями.
case eventCreated(VMSEvent)
case eventDeleted(VMSEvent)
case eventUpdated(VMSEvent)
URL для загрузки архива успешно создан.
case archiveGenerated(VMSArchiveLinkSocket)
struct VMSArchiveLinkSocket {
public let download: VMSDownloadUrlData?
public struct VMSDownloadUrlData: Codable {
public let url: String?
}
}
В случае, если пользователь вышел из системы (например, сеанс был удален).
case logout
VMSIntercomPushTypes
В случае, если VOIP-вызов с домофона был отменен с самого домофона.
case callCanceled(VMSCanceledCall?)
Результаты действий пользователя с домофонами и кодами.
case intercomCodeStored(VMSIntercomCode?)
case intercomCallStored(VMSIntercomCall?)
case intercomStored(VMSIntercom?)
case intercomKeyConfirmed(VMSIntercom?)
case intercomRenamed(VMSIntercom?)
case intercomsDeleted(VMSIntercomDeleteSocket?)
case intercomCodesDeleted(VMSIntercomDeleteSocket?)
case callsDeleted(VMSIntercomDeleteSocket?)
case intercomKeyError(VMSIntercomErrorSocket?)
case intercomAddError(VMSIntercomErrorSocket?)