Библиотека, реализующая порт 32100. Облачный протокол UDP, используемый многими камерами P2P. Описание протокола вы можете найти в вики.
npm install --save lib32100
Требовать библиотеку
const lib32100 = require ( 'lib32100' )
Создать экземпляр клиента
const client = lib32100 . client ( )
Обратите внимание, что каждый клиент может обслуживать одно устройство (камеру) и несколько облачных серверов .
Добавить серверы
client . addServer ( { host : "myserver.example.com" , port : 32100 } )
Установите UID устройства
client . setUid ( 'PROD123456ABCDE' )
Добавить слушателей
client . on ( 'stun' , ( e ) => console . log ( JSON . stringify ( e ) ) )
client . on ( 'lookup' , ( e ) => console . log ( JSON . stringify ( e ) ) )
Отправлять команды на облачные серверы
client . sendSTUNRequest ( )
client . lookupUid ( )
Добавить адрес камеры
client . addCamAddress ( { host : "192.168.0.100" , port : 10088 } )
Установите учетные данные камеры
client . setCamCredentials ( { user : 'admin' , pass : 'password' } )
Открыть сеанс прямой камеры
client . openDirectCamSession ( { host : "192.168.0.100" , port : 10088 } )
Проверьте учетные данные
client . checkCredentials ( )
Получить снимок
client . getSnapshot ( )
Отправить собственный GET-запрос
client . sendGet ( '/custom_url.cgi?myparam=hello' )
Отправьте несколько запросов GET
client . sendMultipleGet ( [ '/custom_url1.cgi' , '/custom_url2.cgi' , '/custom_url3.cgi' ] )
Получить прямой видеопоток
client . getVideoStream ( )
Получить живой аудиопоток
client . getAudioStream ( )
Остановить видеопоток
client . stopVideoStream ( )
Остановить аудиопоток
client . stopAudioStream ( )
Получайте различную информацию
client . getParams ( )
client . getCameraParams ( )
client . getFactoryParam ( )
client . getStatus ( )
client . cameraControl ( )
client . getMisc ( )
client . login ( )
client . getRtsp ( )
client . getOnvif ( )
client . getRecord ( )
client . wifiScan ( )
client . getWifiScanResult ( )
Двигайтесь по направлениям пошагово
client . stepDown ( )
client . stepLeft ( )
client . stepRight ( )
client . stepUp ( )
Двигайтесь по направлениям
client . moveDown ( )
client . moveLeft ( )
client . moveRight ( )
client . moveUp ( )
client . stopMove ( )
Закрыть сеанс
client . closeCamSession ( )
Вы можете послушать следующие мероприятия:
stun (server response)
lookup (server response)
lookupACK (server response)
unknownMsg (any message not yet parsable by the library)
pingpong (camera ping or pong)
close (camera closed session)
confirmed (camera comfirmed ID i.e. session opened)
ack (camera acked a message)
http (an http response)
audio (live audio data)
video (live video data)
complete (a complete http response)
lostConnection (the connection was lost)
Эта реализация основана не на официальных спецификациях, а исключительно на обратном проектировании протокола. Я не могу гарантировать, что он будет работать на каждом устройстве.
Массачусетский технологический институт. Авторские права (c) Фабрицио Бертоне