node如何检测摄像头是否在线
生活随笔
收集整理的這篇文章主要介紹了
node如何检测摄像头是否在线
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.前言
項目需求:攝像頭通過rtsp推流,前端利用webrtc流實時播放,但是會出現網絡不好,或者斷網,斷點的情況,所以需要實時檢測設備的在線情況。
2. 思路
之前的方案是通過播放webrtc流去判斷是否在線,但是由于服務器解碼webrtc對cup的性能消耗比較大,所以最終還是采用node檢測去ip的方案!每隔個5秒去檢測一次,這樣算是性能上比較友好了
node代碼:
let ping = require('ping'),axios = require('axios');router.post('/pingIp', function (req, res, next) {let ips = req.body.ips,promiseArr = [];ips.forEach(function (ip) {let promise = ping.promise.probe(ip, {timeout: 2,extra: ['-i', '2'],})promiseArr.push(promise);});//檢測所有的ipaxios.all(promiseArr).then((response) => {res.send({"code": 200,"message": "成功","result": "success","content": response});}); });module.exports = router;前端主要代碼:
async created() {//獲取當前頁的設備列表let ips = await this.getMonitorVos(this.lampCurrentPage, this.pampPageSize);await this.getIpStatus(ips);await this.getReplayList(this.fileCurrentPage, this.filePageSize);this.ipsTime = setInterval(async () => {let ips = await this.getMonitorVos(this.lampCurrentPage,this.pampPageSize,true);ips.length != 0 && (await this.getIpStatus(ips));}, 5000);},效果如下:
總結
以上是生活随笔為你收集整理的node如何检测摄像头是否在线的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免费绿色的Mac电脑清理神器CleanM
- 下一篇: STM32单片机初学者编程之常用小程序-