Skip to main content
Skip table of contents

VMSPusherApi

Используется pusher-websocket-swift версии 10.0.1 с некоторыми исправлениями для целей VMSMobileSDK.

https://github.com/pusher/pusher-websocket-swift/tree/master

Инициализация

CODE
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

В случае, если список камер был обновлен для этого пользователя.

CODE
case camerasUpdate(VMSCamerasUpdateSocket)

struct VMSCamerasUpdateSocket {
    public let detached: [Int]?     /// 
    public let attached: [Int]?     /// 
}

detached — список идентификаторов камер, которые были удалены из учетной записи этого пользователя

attached — список идентификаторов камер, которые были добавлены в учетную запись этого пользователя

В случае, если разрешения пользователя были обновлены.

CODE
case permissionsUpdate

В случае, если группы были обновлены для этого пользователя.

CODE
case groupsUpdate

В случае, если запрос syncGroups(for cameraId:, groupIds:,complete:) вернул значение async и был успешно выполненным. Для получения более подробной информации см. GroupApi.

CODE
case cameraGroupsSynced

В случае удачного манипулирования событиями.

CODE
case eventCreated(VMSEvent)
case eventDeleted(VMSEvent)
case eventUpdated(VMSEvent)

URL для загрузки архива успешно создан.

CODE
case archiveGenerated(VMSArchiveLinkSocket)

struct VMSArchiveLinkSocket {
    public let download: VMSDownloadUrlData?
    
    public struct VMSDownloadUrlData: Codable {
        public let url: String?
    }
}

В случае, если пользователь вышел из системы (например, сеанс был удален).

CODE
case logout

VMSIntercomPushTypes

В случае, если VOIP-вызов с домофона был отменен с самого домофона.

CODE
case callCanceled(VMSCanceledCall?)

Результаты действий пользователя с домофонами и кодами.

CODE
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?)

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.