国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman+gateway對接華為攝像頭,卡在最后一步

calvin

問題描述

我在webman上裝了gatewayWorker插件,起了個tcp服務(wù)用于監(jiān)聽攝像頭主動注冊和后續(xù)和攝像頭的交互?,F(xiàn)在的情況是服務(wù)端收到了PUT的設(shè)備基礎(chǔ)信息,按文檔的交互流程上的話我還需要用建立起來的這條tcp連接去請求設(shè)備接口(/SDCAPI/V1.0/MiscIaas/System),接口采用HTTP Digest的認(rèn)證方式。這個請求我應(yīng)該咋寫,有大佬給個思路嗎?下面是相關(guān)文檔截圖和日志信息

截圖
截圖
截圖
截圖

截圖
截圖

1641 3 3
3個回答

workers

是可以的 創(chuàng)建一個tcp服務(wù)就行了 你這個攝像頭是什么品牌型號啊 看起來對二開支持的挺好的 買一個研究研究

  • calvin 2023-08-16

    攝像頭是華為的D3250-10-SIU;我現(xiàn)在是用webman的自定義進(jìn)程監(jiān)聽http,能收到攝像頭put過來的基礎(chǔ)信息,就是用起來感覺不好用,比如給特定設(shè)備推信息這項都要自己實現(xiàn)。我看文檔GatewayWorker好像不能監(jiān)聽http

  • calvin 2023-08-16

    可以的,剛用GatewayWorker試了下

  • workers 2023-08-22

    方便發(fā)一下攝像頭文檔看看嗎?還有購買鏈接,多謝

  • calvin 2023-08-22

    可以的,給個郵箱

  • workers 2023-08-22

    365581323@qq.com

  • calvin 2023-08-22

    已發(fā)

  • workers 2023-08-22

    謝謝

liong
<?php

// 設(shè)備接口URL
$url = 'http://設(shè)備IP地址/SDCAPI/V1.0/MiscIaas/System';

// 設(shè)備基礎(chǔ)信息
$deviceInfo = [
    'deviceId' => '設(shè)備ID',
    'deviceName' => '設(shè)備名稱',
    // 其他設(shè)備基礎(chǔ)信息字段
];

// 構(gòu)建HTTP Digest認(rèn)證頭部
$digestHeader = generateDigestHeader('用戶名', '密碼', $url, 'GET');

// 發(fā)送請求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [$digestHeader]);
$response = curl_exec($ch);
curl_close($ch);

// 處理響應(yīng)
if ($response) {
    // 響應(yīng)成功
    echo "接收到設(shè)備接口的響應(yīng):" . $response;
} else {
    // 響應(yīng)失敗
    echo "發(fā)送請求失敗";
}

/**
 * 生成HTTP Digest認(rèn)證頭部
 * @param string $username 用戶名
 * @param string $password 密碼
 * @param string $url 請求的URL
 * @param string $method 請求方法(GET, POST, PUT等)
 * @return string
 */
function generateDigestHeader($username, $password, $url, $method) {
    // 生成隨機的nonce和cnonce
    $nonce = md5(uniqid());
    $cnonce = md5(uniqid());

    // 生成HA1和HA2
    $ha1 = md5($username . ':' . 'Digest' . ':' . $password);
    $ha2 = md5($method . ':' . $url);

    // 生成response
    $response = md5($ha1 . ':' . $nonce . ':' . $cnonce . ':' . 'auth' . ':' . $ha2);

    // 構(gòu)建認(rèn)證頭部
    $digestHeader = 'Authorization: Digest ';
    $digestHeader .= 'username="' . $username . '", ';
    $digestHeader .= 'realm="Digest", ';
    $digestHeader .= 'nonce="' . $nonce . '", ';
    $digestHeader .= 'uri="' . $url . '", ';
    $digestHeader .= 'cnonce="' . $cnonce . '", ';
    $digestHeader .= 'response="' . $response . '", ';
    $digestHeader .= 'algorithm="MD5", ';
    $digestHeader .= 'qop=auth';

    return $digestHeader;
}

將示例代碼中的占位符替換為實際的設(shè)備信息和認(rèn)證信息

Gin

guzzle 很簡單 new GuzzleClient(['base_uri' => $base_uri,'auth' => ['admin', 'hik123456', 'digest']]);

  • liong 2023-08-22

    這個更方便

  • calvin 2023-08-22

    是在設(shè)備建立起的長連接上做雙向交互

年代過于久遠(yuǎn),無法發(fā)表回答
??