日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Java全棧物聯(lián)網(wǎng)平臺源碼解析:從協(xié)議接入到Web組態(tài)大屏

Java全棧物聯(lián)網(wǎng)平臺源碼解析:從協(xié)議接入到Web組態(tài)大屏 簡介基于 Java 主流技術(shù)棧SpringMVC、Spring、MyBatis與 MySQL 構(gòu)建的物聯(lián)網(wǎng)監(jiān)控平臺源碼界面由 HTML、jQuery、CSS 實(shí)現(xiàn)適用于工業(yè)設(shè)備監(jiān)控、智能家居環(huán)境監(jiān)測等場景面向需要快速搭建數(shù)據(jù)采集與遠(yuǎn)程控制系統(tǒng)的開發(fā)者或運(yùn)維人員。系統(tǒng)集成 TCP/IP、HTTP、MQTT 等通訊協(xié)議可無縫對接海康攝像頭并具備報警信息管理、自動控制觸發(fā)、歷史數(shù)據(jù)查詢與報表導(dǎo)出、子賬戶與場景授權(quán)等完善功能。壓縮包約 832.96MB共 2000 個文件以 jsp、java、js、css 前后端代碼為主附帶 sql 數(shù)據(jù)庫腳本、xml 及 properties 配置、pdf 與 doc 文檔方便二次開發(fā)和部署維護(hù)。目前已有 245 人學(xué)習(xí)下載文檔齊全、目錄結(jié)構(gòu)清晰可幫助讀者節(jié)省大量自研時間是一套值得參考的成熟物聯(lián)網(wǎng)監(jiān)控解決方案。1. 一套 Java 全棧物聯(lián)網(wǎng)平臺源碼能替你省掉的是協(xié)議棧和組態(tài)這兩件難事做物聯(lián)網(wǎng)平臺的人都有個共同感受設(shè)備接入和組態(tài)畫布這兩件事比想象中耗時得多。一臺 Modbus 設(shè)備、一個 MQTT 傳感器、一路??禂z像頭協(xié)議各不相同每接一種就要寫一遍解析、斷線重連、數(shù)據(jù)入庫組態(tài)更是從零開始畫圖元、做屬性綁定、調(diào)實(shí)時刷新。這套基于 Java 全棧技術(shù)的物聯(lián)網(wǎng)平臺源碼把組態(tài)、大屏可視化和通訊協(xié)議集成MQTT、TCP、海康攝像頭打包在一起意味著你拿到的不是一套空殼代碼而是一條從設(shè)備數(shù)據(jù)到瀏覽器頁面的完整鏈路。如果你正在評估是自研還是基于源碼二次開發(fā)這篇文章會告訴你這套源碼怎么拆、怎么跑、坑在哪。2. 先拆解這套源碼組態(tài)、大屏、協(xié)議接入各自想解決什么問題2.1 Web 組態(tài)把傳統(tǒng)組態(tài)軟件的能力搬進(jìn)瀏覽器到底少了什么傳統(tǒng)組態(tài)軟件像 WinCC、KingSCADA裝在 Windows 上拖拽圖元、配置采集驅(qū)動功能很全但二次開發(fā)基本走封閉接口。Web 組態(tài)的思路不同前端用 SVG 或 Canvas 畫圖元把圖元的位置、顏色、數(shù)據(jù)源保存成 JSON后端只負(fù)責(zé)存儲和推送實(shí)時值。運(yùn)行時瀏覽器拿著 JSON 渲染畫面再通過 WebSocket 接收數(shù)據(jù)刷新。這套 Java 全棧源碼里的組態(tài)模塊常見做法是前端 Vue SVG后端存組態(tài)模板和設(shè)備綁定關(guān)系。好處是部署簡單客戶打開瀏覽器就能看省掉插件安裝。代價是復(fù)雜動畫、歷史曲線回放、報警聯(lián)動這些傳統(tǒng)組態(tài)自帶的能力在 Web 組態(tài)里往往需要自己補(bǔ)。源碼里一般內(nèi)置了基礎(chǔ)圖元庫比如管道、閥門、儀表、傳感器圖標(biāo)夠畫流程工藝圖。你要是想把它做成類似 WinCC 那種重型畫面就得往圖元腳本和動畫編輯器里加代碼。組態(tài)的核心不是畫布渲染而是圖元和數(shù)據(jù)源的綁定。一個溫度計圖元綁定設(shè)備的 temperature 屬性運(yùn)行時后臺把最新值推到前端圖元指針跟著轉(zhuǎn)。這個綁定關(guān)系的數(shù)據(jù)結(jié)構(gòu)設(shè)計決定了組態(tài)好不好擴(kuò)展。源碼里通常會有類似dataSource: { deviceId: dev001, property: temperature }的 JSON 配置圖元組件統(tǒng)一讀取這個字段再訂閱對應(yīng)的實(shí)時通道。理解了這條鏈路你看組態(tài)模塊的源碼就有主線了。2.2 可視化大屏從設(shè)備數(shù)據(jù)到頁面像素的完整鏈路可視化大屏是物聯(lián)網(wǎng)平臺的招牌功能。工廠產(chǎn)值、設(shè)備在線率、報警數(shù)量、環(huán)境溫濕度全堆一個屏上。大屏的數(shù)據(jù)鏈路比組態(tài)更長設(shè)備上報 → 協(xié)議網(wǎng)關(guān)解析 → 后端業(yè)務(wù)處理 → 寫入數(shù)據(jù)庫 → 推送通道 → 前端圖表渲染。任何一環(huán)慢了大屏就出現(xiàn)數(shù)據(jù)斷層。源碼里大屏常見的數(shù)據(jù)推送方式有兩種一種是大屏頁面直接訂閱 MQTT繞過后端業(yè)務(wù)層另一種是后端轉(zhuǎn)發(fā)到 WebSocket前端再訂閱。我更推薦后者。因?yàn)榇笃列枰故镜牟恢皇窃紲y量值還有聚合結(jié)果比如最近一小時的平均溫度、設(shè)備故障率。這些計算放在后端做前端拿現(xiàn)成數(shù)據(jù)渲染鏈路更穩(wěn)。直接訂閱 MQTT 雖然實(shí)時性高但長時間大流量下前端很容易被消息淹沒也不方便做權(quán)限控制。大屏和歷史數(shù)據(jù)是綁在一起的。常見方案是后端定時把設(shè)備數(shù)據(jù)從 Redis 或 MySQL 聚合到一張大屏統(tǒng)計表前端展示時先查一次歷史數(shù)據(jù)再訂閱實(shí)時增量。這套源碼里的大屏模塊一般會提供設(shè)備總數(shù)、今日報警數(shù)、實(shí)時曲線這幾個基礎(chǔ)組件你可以照著擴(kuò)展。做二次開發(fā)時先摸清大屏接口返回的字段和推送消息的格式再動手改圖表。2.3 協(xié)議接入層MQTT、TCP、??禂z像頭在源碼里的位置協(xié)議接入層是物聯(lián)網(wǎng)平臺的地基。源碼里這一層通常分三個入口MQTT 客戶端、TCP 服務(wù)端、攝像頭拉流服務(wù)。MQTT 負(fù)責(zé)傳感器、DTU、智能儀表這類小數(shù)據(jù)量設(shè)備按主題訂閱消息體多用 JSON。TCP 服務(wù)端負(fù)責(zé) PLC、控制器、防火墻一類走自定義幀協(xié)議的設(shè)備需要做報文解析。??禂z像頭則走獨(dú)立通道用 RTSP 拉流再轉(zhuǎn)成 HLS 或 WebRTC 供前端播放。三層接進(jìn)來后數(shù)據(jù)必須統(tǒng)一收口。源碼里一般設(shè)計一個DeviceMessage內(nèi)部模型包含設(shè)備標(biāo)識、屬性名、數(shù)值、時間戳。MQTT 回調(diào)、TCP 解碼器、攝像頭告警事件最終都轉(zhuǎn)成這個模型再交給消息隊列和業(yè)務(wù)層。統(tǒng)一模型的好處是上層做告警、存儲、大屏不用關(guān)心底層是什么協(xié)議。你接新設(shè)備時只需要把新協(xié)議解析成DeviceMessage其余鏈路不用動。選型和架構(gòu)說完了下面進(jìn)入實(shí)際操作。把源碼跑起來你會遇到第一個問題環(huán)境版本不匹配啟動直接翻車。3. 把源碼跑起來環(huán)境版本、數(shù)據(jù)庫初始化和最小啟動流程3.1 環(huán)境搭配JDK 17、MySQL 8、Redis 與 MQTT Broker 怎么選拿到源碼第一件事是看pom.xml里的 Spring Boot 版本。如果是 Spring Boot 2.x配套 JDK 8 最穩(wěn)如果是 Spring Boot 3.x必須 JDK 17 起。我習(xí)慣先看pom.xml再定 JDK省得啟動時碰到UnsupportedClassVersionError。數(shù)據(jù)庫這塊MySQL 8 是主流注意驅(qū)動要配套pom.xml里用的是mysql-connector-j那版本就得兼容 MySQL 8。Redis 用于緩存和實(shí)時數(shù)據(jù)臨時存儲版本 6 以上就行。MQTT Broker 是獨(dú)立軟件平臺本身不實(shí)現(xiàn) Broker。源碼里如果配置的是本地端口 1883那你需要先啟動一個 EMQX 或其他 Broker。有的源碼在pom.xml內(nèi)嵌了 Moquette 這類輕量 Broker但生產(chǎn)不建議用。用 EMQX 的好處是管理界面能直接看連接數(shù)、訂閱關(guān)系出了問題好排查。部署時我把 EMQX 裝在獨(dú)立服務(wù)器避免和業(yè)務(wù)應(yīng)用搶資源。環(huán)境版本搭配參考下表避免頭疼組件推薦版本備注JDK8 或 17看 Spring Boot 主版本MySQL8.0必須 utf8mb4 字符集Redis6.x/7.x用于緩存和實(shí)時數(shù)據(jù)MQTT BrokerEMQX 4.x/5.x或 MosquittoNode.js16/18前端構(gòu)建按 package.json 要求3.2 初始化數(shù)據(jù)庫建庫腳本、時區(qū)和 utf8mb4 一個都不能少數(shù)據(jù)庫是源碼跑起來的第一道坎。源碼目錄里一般有個sql/文件夾里面放iot_platform.sql。我習(xí)慣先手動建庫指定字符集和排序規(guī)則再導(dǎo)入數(shù)據(jù)避免 MySQL 默認(rèn) latin1 導(dǎo)致中文亂碼。mysql -uroot -p -e CREATE DATABASE IF NOT EXISTS iot_platform DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; mysql -uroot -p iot_platform doc/sql/iot_platform.sql邏輯說明第一條命令建庫utf8mb4保證能存 emoji 和生僻字第二條命令導(dǎo)入建表語句和初始化數(shù)據(jù)。如果導(dǎo)入報Unknown database說明第一條命令沒執(zhí)行成功先確認(rèn) MySQL 登錄權(quán)限。導(dǎo)入完成后用show tables;檢查是否有設(shè)備表、規(guī)則表、組態(tài)表、報警表。接下來改application.yml里的數(shù)據(jù)源配置。這里的坑多是時區(qū)和參數(shù)拼寫。spring: datasource: url: jdbc:mysql://localhost:3306/iot_platform?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: root redis: host: localhost port: 6379 password:參數(shù)說明characterEncodingutf8是給 JDBC 驅(qū)動用的和數(shù)據(jù)庫字符集無關(guān)但業(yè)內(nèi)習(xí)慣寫上serverTimezoneAsia/Shanghai防止 MySQL 8 的時區(qū)報錯。Redis 密碼如果沒有留空。還有人會漏掉web端口配置確認(rèn)server.port是你要的端口默認(rèn) 8080。3.3 按順序啟動后端、協(xié)議網(wǎng)關(guān)、前端以及驗(yàn)證標(biāo)準(zhǔn)啟動順序有講究。先啟動 Redis 和 MQTT Broker再啟動 Java 后端最后啟動前端。后端啟動時需要連接 Redis 和數(shù)據(jù)庫如果 Redis 沒起來Spring Boot 會一直重試日志刷屏。我先寫一個啟動腳本按順序控制。# 1. 啟動 Redis取決于你的安裝方式 redis-server /etc/redis.conf # 2. 啟動 MQTT Broker以 EMQX 為例 emqx start # 3. 編譯并啟動 Java 后端 cd /opt/iot-platform mvn clean package -DskipTests nohup java -jar target/iot-platform.jar --spring.profiles.activeprod logs/app.log 21 # 4. 啟動前端如果是 Vue 項目 cd /opt/iot-platform-web npm install npm run dev邏輯說明-DskipTests跳過測試加速打包--spring.profiles.activeprod指定生產(chǎn)配置如果你的源碼里沒有prod配置就用default。nohup讓進(jìn)程在后臺運(yùn)行日志重定向到logs/app.log。前端npm install第一次可能很慢掛代理也常見耐心等。驗(yàn)證標(biāo)準(zhǔn)后端日志出現(xiàn)Netty server started或Tomcat started on port(s): 8080說明啟動成功。然后訪問http://localhost:8080/api/health返回{status:UP}。前端頁面能登錄、能看到默認(rèn)的組態(tài)畫面和大屏模板說明源碼環(huán)境跑通了。這個健康檢查接口如果 404就看日志里有沒有DispatcherServlet報錯。4. 設(shè)備接入與組態(tài)綁定實(shí)操M(fèi)QTT、TCP、??禂z像頭怎么打通4.1 MQTT 接入訂閱設(shè)備消息、解析 payload 并寫入業(yè)務(wù)表大多數(shù) IoT 源碼都會用 Eclipse Paho 或 Spring Integration MQTT 做客戶端。核心是訂閱設(shè)備上報主題把payload轉(zhuǎn)成業(yè)務(wù)數(shù)據(jù)。先看一個典型的訂閱回調(diào)代碼。Component public class MqttMessageHandler { Autowired private DeviceDataService deviceDataService; public void handleMessage(String topic, byte[] payload) { // 過濾非設(shè)備主題避免處理系統(tǒng)消息 if (!topic.startsWith(device/)) { return; } String body new String(payload, StandardCharsets.UTF_8); // 假設(shè) payload 為 JSON: {deviceId:dev01,temperature:25.6,humidity:60} JsonObject data JsonParser.parseString(body).getAsJsonObject(); String deviceId data.get(deviceId).getAsString(); Double temperature data.get(temperature).getAsDouble(); // 統(tǒng)一走設(shè)備數(shù)據(jù)服務(wù)落庫并推送到實(shí)時通道 deviceDataService.savePoint(deviceId, temperature, temperature); } }邏輯說明這個方法只關(guān)心device/開頭的主題防止 MQTT 系統(tǒng)消息混入業(yè)務(wù)線程。解析 JSON 后把設(shè)備 ID、屬性名、數(shù)值傳給savePoint這一步就是統(tǒng)一收口。你接新設(shè)備時只需要改 payload 解析這一段后面的入庫、推送、告警邏輯不用動。參數(shù)說明QoS 建議用 1保證消息至少送達(dá)一次同時避免 QoS 2 的性能開銷。Broker 端配置max_message_rate等參數(shù)前先壓測再調(diào)不要盲改。clientId必須唯一否則 Broker 會先踢掉舊連接出現(xiàn)反復(fù)斷連。4.2 TCP 接入解決粘包/半包自定義報文長度字段TCP 設(shè)備接入復(fù)雜度比 MQTT 高一截尤其是粘包和半包。Netty 里常見做法是自定義ByteToMessageDecoder先解析長度字段再按長度切幀。public class DeviceFrameDecoder extends ByteToMessageDecoder { private static final int MAX_FRAME_LENGTH 1024; Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, ListObject out) throws Exception { // 先等待 4 個字節(jié)的長度頭 if (in.readableBytes() 4) { return; } in.markReaderIndex(); int length in.readUnsignedShort(); if (length MAX_FRAME_LENGTH) { ctx.close(); // 非法長度直接斷開 } if (in.readableBytes() length) { in.resetReaderIndex(); // 半包等待更多數(shù)據(jù) } byte[] body new byte[length]; in.readBytes(body); out.add(Unpooled.wrappedBuffer(body)); } }邏輯說明這段代碼解決兩個問題。粘包時readableBytes大于 length第一次只讀出完整的一幀剩下的留在ByteBuf里下次再處理。半包時長度頭讀到了但內(nèi)容不完整調(diào)用resetReaderIndex回到標(biāo)記位置等下一次數(shù)據(jù)到達(dá)。out.add輸出的就是完整的一幀字節(jié)數(shù)組業(yè)務(wù)層拿到后不再關(guān)心字節(jié)邊界。TCP 設(shè)備協(xié)議千差萬別常見的有 Modbus、自定義頭部CRC 校驗(yàn)、JSON 換行符分隔。我把解碼器設(shè)計成策略模式每種協(xié)議一個FrameDecoder通過工廠類注冊進(jìn)去。業(yè)務(wù) handler 接收解碼后的幀再按協(xié)議類型解析。這個分層能省掉后期很多改協(xié)議的痛苦。4.3 ??禂z像頭接入RTSP 拉流、鑒權(quán)過期與 Web 播放??禂z像頭接入到 Java 平臺最穩(wěn)的方案是后端用 FFmpeg 拉 RTSP 流轉(zhuǎn)成 HLS 分片前端用 video.js 播放。先看 FFmpeg 轉(zhuǎn)流命令。ffmpeg -rtsp_transport tcp -i rtsp://admin:password192.168.1.64:554/Streaming/Channels/101 \ -c copy -f hls -hls_time 2 -hls_list_size 3 -hls_flags delete_segments \ /var/www/live/camera01/index.m3u8參數(shù)說明-rtsp_transport tcp強(qiáng)制走 TCP避免 UDP 在弱網(wǎng)下丟包花屏/Streaming/Channels/101是??抵鞔a流102是子碼流預(yù)覽用子碼流更流暢-hls_time 2每個分片 2 秒hls_list_size 3只保留 3 個分片降低延遲。這個命令在 Java 里用ProcessBuilder啟動注意定期檢查進(jìn)程是否存活。攝像頭鑒權(quán)有個常見坑??禂z像頭空閑一段時間后會要求重新鑒權(quán)FFmpeg 進(jìn)程還在但流已經(jīng)不更新了。我一般在 Java 里定時比如每 30 分鐘檢查 FFmpeg 進(jìn)程輸出如果接收不到數(shù)據(jù)或者返回碼非零就殺掉進(jìn)程重新拉起。另外并發(fā)拉流很吃帶寬如果 20 個攝像頭同時推主碼流服務(wù)器帶寬直接打滿。我的做法是預(yù)覽用子碼流 轉(zhuǎn)碼錄像才用主碼流。很多平臺為了省資源會直接在前端用 WebRTC 播放但??禂z像頭原生不支持需要ZLMediaKit或SRS做二次轉(zhuǎn)封裝。如果這套源碼里沒有包含流媒體服務(wù)器用 FFmpeg 轉(zhuǎn) HLS 是最省事的方式延遲 3-5 秒對于監(jiān)控畫面足夠。4.4 組態(tài)與大屏把設(shè)備數(shù)據(jù)綁定到圖元和圖表組態(tài)畫布的圖元綁定數(shù)據(jù)源核心是 JSON 配置。下面是一個簡單的溫度計圖元配置。{ type: thermometer, id: node_01, x: 120, y: 80, dataSource: { deviceId: dev001, property: temperature, aggregate: latest } }邏輯說明dataSource告訴運(yùn)行時這個圖元的數(shù)值從哪里來。后端收到設(shè)備數(shù)據(jù)后根據(jù)deviceId和property找到對應(yīng)圖元通過 WebSocket 推送新的數(shù)值。aggregate字段表示取值策略latest是最近一次值也可以寫成avg_1m表示最近一分鐘平均值。前端收到推送后更新圖元代碼結(jié)構(gòu)大致如下。socket.onmessage (event) { const data JSON.parse(event.data); const node diagram.getNode(data.nodeId); if (node) { node.setValue(data.value); // 圖元組件內(nèi)部處理動畫 node.updateStyle(); // 可觸發(fā)顏色/閃爍等聯(lián)動 } };參數(shù)說明diagram.getNode在畫布緩存中查找圖元實(shí)例避免頻繁操作 DOM。setValue的方法圖元內(nèi)部可自行實(shí)現(xiàn)儀表盤轉(zhuǎn)指針閥門圖標(biāo)變色數(shù)字直接更新。大屏圖表比如 ECharts 折線圖同理訂閱device_point主題往series里追加數(shù)據(jù)再做時間戳窗口裁剪。組態(tài)模塊最容易設(shè)計混亂的是「保存」和「運(yùn)行」兩條路徑。編輯時前端是畫布組件保存時把整個畫布的 JSON 提交后端運(yùn)行時畫布組件進(jìn)入只讀模式后端只推數(shù)據(jù)。兩邊狀態(tài)要分離否則畫布一刷新編輯狀態(tài)丟失。這套源碼里如果發(fā)現(xiàn)保存后回到運(yùn)行頁圖元位置變了多半是這兩個模式的數(shù)據(jù)沒有做隔離。5. 避坑與排查這套物聯(lián)網(wǎng)平臺源碼在生產(chǎn)前最常見的 5 個坑5.1 設(shè)備連上又掉線心跳和 keep-alive 參數(shù)互相打架現(xiàn)象用 MQTT 測試工具連平臺發(fā)一條消息后幾十秒內(nèi)設(shè)備就顯示離線日志里能看到 MQTT 客戶端不斷重連。原因設(shè)備端設(shè)置了自動休眠或者心跳發(fā)送間隔大于 Broker 的keep_alive超時時間。MQTT Broker 在超過 keep_alive 時間沒收到客戶端心跳包就判定客戶端掉線主動斷開連接。很多傳感器為了省電上報間隔 60 秒但 Broker 默認(rèn)keep_alive只有 30 秒自然會被踢。解決排查兩端參數(shù)。EMQX 里調(diào)整keep_alive到 90 秒或者修改設(shè)備端的heartbeat_interval為 20 秒。另外設(shè)備必須支持發(fā)送 MQTT 心跳包PINGREQ有些模塊自帶心跳但默認(rèn)關(guān)閉需要打開。這個坑最折磨人因?yàn)楝F(xiàn)象是「連接不穩(wěn)定」但不報錯只能靠抓包確認(rèn)。5.2 數(shù)據(jù)已入庫但大屏不刷新WebSocket 推送與回查的時序問題現(xiàn)象數(shù)據(jù)庫里能看到最新設(shè)備數(shù)據(jù)但大屏頁面上的數(shù)值一直停在幾分鐘前刷新頁面才恢復(fù)。原因后端寫入數(shù)據(jù)庫和推送 WebSocket 消息不是同一個事務(wù)。如果先推送再提交前端拿到的是未提交數(shù)據(jù)數(shù)據(jù)庫回滾后前端就顯示了一個不存在的值如果先提交但推送失敗前端沒有新數(shù)據(jù)。還有一種是用戶開了兩個瀏覽器標(biāo)簽其中一個頁面斷開了 WebSocket 但代碼沒有自動重連。解決用 Spring 的TransactionalEventListener(phase TransactionPhase.AFTER_COMMIT)監(jiān)聽事務(wù)提交事件再推送消息保證拿到的數(shù)據(jù)一定已落庫。前端統(tǒng)一封裝 WebSocket 重連邏輯斷線后指數(shù)退避重連避免重連風(fēng)暴。另外大屏的接口要設(shè)計成「先查一次全量再訂閱增量」不要只依賴推送否則斷線期間的數(shù)據(jù)就丟了。5.3 ??禂z像頭畫面卡頓或黑屏碼流參數(shù)與鑒權(quán)并發(fā)現(xiàn)象攝像頭接入平臺后預(yù)覽畫面每隔幾分鐘卡一次嚴(yán)重時黑屏FFmpeg 日志報錯method OPTIONS failed: 401 Unauthorized。原因??禂z像頭默認(rèn)開主碼流4K 分辨率高碼率服務(wù)器帶寬和轉(zhuǎn)碼能力扛不住另一個是 RTSP 鑒權(quán)過期FFmpeg 進(jìn)程還活著但已經(jīng)失效。如果多個頁面同時看同一路攝像頭FFmpeg 會發(fā)起多次拉流浪費(fèi)資源。解決預(yù)覽統(tǒng)一用子碼流地址后綴用102分辨率降到 1280x720碼率限制在 512kbps。用一條 FFmpeg 進(jìn)程拉流再通過 HLS 分發(fā)給多個前端避免每個瀏覽器各自拉 RTSP。寫一個定時任務(wù)每 5 分鐘檢查 FFmpeg 進(jìn)程的stderr一旦出現(xiàn)401就殺掉進(jìn)程重啟。黑屏?xí)r先看 FFmpeg 日志不要盲目重啟。5.4 組態(tài)圖元保存后又變回原樣緩存和版本號沒對上現(xiàn)象在組態(tài)編輯器里拖動圖元、修改顏色點(diǎn)擊保存提示成功但刷新頁面后又回到舊布局。原因前端在保存時把整份畫布 JSON 提交給了后端但后端圖元數(shù)據(jù)是緩存到了 Redis保存只更新了 MySQL刷新時前端請求先打到 Redis取到的是舊緩存。還有的源碼做了一層版本號控制但編輯器的保存接口沒有遞增版本號導(dǎo)致新數(shù)據(jù)覆蓋不了舊緩存。解決先看后端保存接口有沒有設(shè)置CacheEvict。如果沒有手動在saveDiagram方法上加上清除對應(yīng)畫布的 Redis key。如果源碼用的是版本號方案確認(rèn)前端每次保存時攜帶version 1后端做樂觀鎖比較沖突時提示用戶重新加載。這個坑屬于源碼邏輯不嚴(yán)謹(jǐn)改起來不復(fù)雜但影響體驗(yàn)很嚴(yán)重。5.5 TCP 上報數(shù)據(jù)亂碼報文定界必須放在業(yè)務(wù)解析之前現(xiàn)象串口和 TCP 設(shè)備上報的數(shù)據(jù)到平臺后臺字符串頻繁出現(xiàn)亂碼或多字節(jié)拼接錯誤十六進(jìn)制看是兩個半包拼接。原因設(shè)備端響應(yīng)慢數(shù)據(jù)分多次到達(dá) Netty 的 channelRead業(yè)務(wù) handler 拿到每個 ByteBuf 就開始解析沒等完整幀?;蛘哒嘲鼤r沒有按長度切分把兩個數(shù)據(jù)幀的尾部和一個數(shù)據(jù)幀的頭拼在一起。解決檢查解碼器是否在decode里輸出了完整的數(shù)據(jù)幀。Netty 準(zhǔn)則是解碼器只負(fù)責(zé)定界業(yè)務(wù) handler 只負(fù)責(zé)解析內(nèi)容。我用的是 4.2 節(jié)的DeviceFrameDecoder先把長度頭解析出來等完整數(shù)據(jù)到齊了再out.add。業(yè)務(wù) handler 里再按照協(xié)議格式比如 JSON 或二進(jìn)制結(jié)構(gòu)解析。這個坑的排查手段是抓包把收到的原始字節(jié)流 dump 下來確認(rèn)粘包和半包現(xiàn)象再改解碼器。6. 進(jìn)階把協(xié)議接入層改造成適合自己業(yè)務(wù)的插件式框架6.1 抽象協(xié)議接口新增一種設(shè)備協(xié)議需要動哪幾個類設(shè)備接入的終極形態(tài)是插件化。定義一個統(tǒng)一接口MQTT、TCP、攝像頭各自實(shí)現(xiàn)再通過工廠注冊。public interface DeviceAdapter { // 解析出的標(biāo)準(zhǔn)消息統(tǒng)一交給上層 void onMessage(DeviceMessage message); // 啟動連接 void start(); // 停止連接 void stop(); }邏輯說明新增一種協(xié)議時只需要新建一個實(shí)現(xiàn)類在start()里啟動 Netty 服務(wù)、MQTT 訂閱或 FFmpeg 進(jìn)程在onMessage()里把原始報文轉(zhuǎn)成DeviceMessage。然后在工廠類里注冊映射比如ProtocolType.TCP - TcpDeviceAdapter。上層業(yè)務(wù)不用改。6.2 數(shù)據(jù)存儲優(yōu)化時序數(shù)據(jù)按天分表別讓 MySQL 扛全量設(shè)備采集數(shù)據(jù)寫入 MySQL 時單表數(shù)據(jù)量超過千萬后查詢明顯變慢。常見做法是按天分表表名帶日期后綴。CREATE TABLE device_data_20260711 ( id BIGINT PRIMARY KEY AUTO_INCREMENT, device_id VARCHAR(32), property VARCHAR(32), value DECIMAL(10,2), ts DATETIME, INDEX idx_device_ts (device_id, ts) );邏輯說明寫入時先算出今天的表名拼接 SQL 插入。查詢時也按日期路由。配合定時任務(wù)清理 90 天前的數(shù)據(jù)MySQL 壓力可控。更極端的方案是引入 TDengine 或 InfluxDB但那是后話。6.3 上線前驗(yàn)證用模擬器壓測 MQTT 與 TCP 接入上限正式上線前我會寫一個模擬器用多線程同時建立 MQTT 連接隨機(jī) topic 上報。MySQL 和 Redis 的監(jiān)控看 CPU 和連接數(shù)。TCP 壓測用 Netty 客戶端并發(fā)連接每個連接定時發(fā)長度固定報文。壓測時注意生產(chǎn)環(huán)境的連接數(shù)限制先測 1000 個并發(fā)再逐步加到 5000看服務(wù)端 GC 情況和消息延遲。這里有個血淚經(jīng)驗(yàn)壓測通過不代表上線穩(wěn)因?yàn)槟M器數(shù)據(jù)規(guī)律性太強(qiáng)真實(shí)設(shè)備的抖動、斷線重連、亂序報文才是真正的考驗(yàn)。我習(xí)慣壓測時隨機(jī)丟包、隨機(jī)停發(fā)消息逼著系統(tǒng)走一遍重連和超時分支?;氐介_頭說的問題這套 Java 全棧物聯(lián)網(wǎng)平臺源碼能幫你省掉的是最基礎(chǔ)的協(xié)議棧、組態(tài)畫布和大屏框架但真正適配你的業(yè)務(wù)場景協(xié)議插件化、數(shù)據(jù)分表、壓測上線還得自己動手。要是你遇到的是設(shè)備報警沒推出來、組態(tài)動畫不絲滑、TCP 報文結(jié)構(gòu)改了一點(diǎn)就解不了包建議先從第 5 章的排查思路入手八成問題都在通道時序和協(xié)議定界上。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩在线视频1234| 天天综合中文字幕 91| 91爆操视频| 亚洲操操操无码| AV网站高清无码在线观看| 人妻大香蕉| 婷婷色一区| 国产精品免费久久久久久久久久| 91在线精品一区二区三区| 日韩AV色图| 69AV女优男人的天堂| 国产精品久久aV| 伊人久久久日韩一区| 被体育老师抱着c到高潮| 精品午夜福利| 啊啊啊在线看| 日本青青草在线| 欧美顶级黄片AAAAA在线免费看| 淫淫总合网| 亚洲中文字幕久久人妻| 好爽视频在线观看视频| 国内外毛片在线观看| 黑丝少妇麻豆| 91在线美女| 超碰人人色| 青青免费在线视频一区| 夜夜欧美| AV天黑人| 97伦乱| 欧洲综合视频| 伊人专区一区二区三区| 中文字幕在线第二页| 夜夜嗨AV蜜臀av| 国产成人精品日本视频| 国产成人在线观看综合| 午夜福利 成人 91| 欧美情色贴图| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 色综合久| www狠狠| 午夜福利在线合集| 国产精品999zyz| 明星性猛交ⅹxxx乱大交| 青娱乐 青青青操 日逼| 久久久女人| 久久9精品网站| 粉嫩AV一区夜夜嗨| 中亚黄色三级大片| 综合天天。| 怡红院亚洲怡春院av| 制服中出中文人人精品| 金典av| 少妇被玩视频二三区| 亚洲精品丝袜| 深夜啪啪啪视频免费| 婷婷五月天久久久| 欧美三级一级| 日han少妇无码| 91亚·色| 91碰碰| 色婷婷视频| 69av一区二区三区| 九九视频黄色片| 亚州综合AⅤ| 大香蕉五月天婷婷| 伊人久久88国产女| 国产嫩草精品A88AV在线| 中文字幕在线24| 九九草| 狠狠操夜夜| 蜜臀在线视频| 91成人精品在线播放| 日韩免费簧片| 亚州一区二区成人片免费| 伊人网综合在线视频| 国产精品久久久无码AV网站| 婷婷丁香在线| 884t在线| 欧美淫乱视频| 男女激烈网站最新| 99啪啪视频| 人人天天欧洲| 中文字幕精品乱码| 在线中文字幕| 亚洲欧美国产日本一区二区三区| 啊啊啊啊啊舒服| 亚洲久久东京热一二三四五区视频| 丰满人妻-区二区三区免费| 欧美亚男人的天堂| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 久久精品国产97欧美精品亚洲| 久久XX| 国产黄a三级三级三级av在线看 | 91 丝袜在线| 超碰97在线中文| 青青草好吊色| 久热九九| 国产精品久久久亚洲一区| 青青草白白色| 九九精品无码专区免费| 人人操AV| 亚洲色图a| 人妻喷水| 亚洲AV成人无码一二三久久| 狠狠干综合| 激情四射婷婷四五月天| 91丝袜美女视频| 国产精品无码av嫩草| 丁香五月影院| 加勒比色综合| 久久久亚洲Av| 国产精品网站www| 91综合网在线| 色五月综合网| 干b在线性社区| 日本二三四区| 日韩av不卡在线观看| 超碰色中文| 我想要 啊 啊 啊| 人人摸.人人色| 久草视频制服诱惑| 淫荡网址| 色色色综合| 快播久久人人aV| 黑人精品一区二区在线播放| 天天影视网综合少妇| 人人九九精| 台湾成人无码AV| 大香蕉色网| 97干97色| 日韩情色视频| 欧美精品宗合| 亚洲丝袜色图| 国产91福利小视频在线观看| 97青青操视频| 欧美日本成人一区二区| 97视频观看| 亚洲欧美碰碰| 日少妇亚洲版| 九九热久久99精品re| 久久內射| 少妇一区二区三区高速| 91少妇通奸网站| 日本不卡高清视频| 超碰在线第一页| 日韩不卡a级视频专区| 久久久久久久久国产| 99精品久久久久久久婷婷| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 久久大香蕉手机高清| 久久男人| 九九热免费国产视频婷婷伊人五月| 日本97久久久精品| 日韩肏逼视频| 日韩欧美偷拍美女视频| 强奸乱伦大香蕉网| AAAA欧美日韩| 色九九九综合| 欧美 亚洲 偷拍自拍| 另类av天堂| AA特级绝黄| 亚洲色婷婷综合久久一区二区三区| 欧美91精品国产自产| 强奸乱亚洲| 97在线视频免费看| baisiav| 青娱乐亚洲自拍| 激情文学小说一区二区| 屌逼传媒| 国产中出内射一区二区| 青青草国产盗摄一二三区| 在线观看AV片| 欧美亚洲高清| 久久久久久大| 亚洲黄色网址视频| 国产精品香蕉| 91模特在线观看| 一区二区偷拍拍视频| 内射夫妻三片| 97鸡把在线视频| 97超碰天天爱天天爱| 最新日产中文在线麻豆| 91被操| 好好的日:com久久九九| 91在线无码精品秘 软件| 天天综合~91| 一区二区视频在看| 免费看美国人人爽,人人操| 久久久久久69国产一区二区| 91亚洲在线| 久久色一区二区| 激激五月| 黑丝少妇在线观看| 日本一区二区不卡精品| 日本熟女不卡视频| 亚洲国产精品久久久久婷婷老年| 亚洲中文一区二区三区| 天天射日日干| 人妻天天爽夜夜爽2| 天天碰操中国年青熟妇| 中文字幕91综合| 欧美十八禁网站| 日本高清视频xxxx| 综合 亚洲 欧美| 91精品操美女| 亚洲十八禁止| 熟女自慰久久久| 久操大香蕉手机视频在线看| 欧美综合区| 91影库| 亚洲婷婷丁香在线| 欧美78P| 啊啊啊好大好深| 视频在线中文字幕| 丝袜美腿91| 91亚洲狠狠色| 天天搞欧美| 激情黄色五月天| 精品国产乱码久久久兰草影视| 精品国产乱码| 国产精品久久久久久亚洲色欲| 78久久久| 欧美色图亚洲特色| 九九九九九九成人| 人澡逼| 我想要啊 啊 啊| 男人的天堂久久狠| 久久精品老司| 嗯嗯,好大,好爽,好骚 | 先锋女优在线观看视频| 九九热只有精品| 天天综合站| 在线小说视频一区| 理论久久婷婷网8| 78精品在线| 亚洲熟妇AV日韩熟妇在线| 精品中文日韩字幕视频| 亚洲自拍青操视频| 麻豆区久久久久亚| 一区二区三区一亚洲中文字幕、综合区灬| 久久国产视频专区一二三| 少妇超碰在线| 91丝袜在线视频| 夜精品久无码| 玖玖久久久| 麻豆av一区二区| 亚洲欧美另类小说| 日本一级特级毛片视频| 一级AV性爱| 成人美女av| 亚洲女毛多水多21P| 免费看黄片现成| 国产高清MV操逼视频| 乱伦熟女区| 日本不卡卡一区| 日韩啪啪啪视频| 日韩资源网| 亚洲交换| 高清成年美女黄网站免费大全| 97超碰日韩| 免费a v| 不卡一区二区日本视频| 欧美熟爽综合| 夜夜人妻爽| 人妻色情天天操| 久久久少妇| 亚洲乱伦图片视频| 亚洲男人天堂2019| 绯色AV粉色AV蜜臀AV| 精人妻无码一区二区三区伊人直播 | 青青免费在线视频一区| 高清在线偷拍自拍视频| 丝袜综合| 91黑丝美女| 久久久久女教师免费一区| 免费观看日本操逼视频| 黄色一级视| 欧美亚综合色图| 伊人网在线点播| 野狼福利社区| 亚洲综合九九| 亚洲999综合| 大香蕉中文| 亚洲精品中文字幕一区在线视频| 做爱A级亚欧| 加勒比大香蕉视频在线| 免费看污网址| 国产精品爆乳懂色蜜乳| 能看的AV| 欧美色吧综合| 青草青草久热| 91AV天美在线视频| 亚洲黄片免费在线播放| 亚洲午夜福利视频| 亚洲涩涩| 欧美双插| 操91| 九七超碰人人乐| 亚洲第一黄色av网站| 成人情色一区二区| 中文无线日韩一区| 99re公开精品免费视频| 色香伊人| 国产成人欧美一区二区三区的国产| av在线观看不卡网站| 久9久| 秋霞 色色| 五月天激情视频| 久操电影网| 国产强上视频在线观看| 国产免费一区| 婷婷精品| 欧美夜夜| 99热精品国产| 日韩欧美中文日韩欧美色| 加勒比综合九九99视频在线播放| 国产精品一区二区后入| 亚洲天堂AV在线播放| 91殴美大片| 啊啊啊慢点| 丁香五月婷婷色| 欧美后入式| 99久久久99久久91熟女| 久久久不卡| 亚洲欧美精品一区天堂久久 | 999久久久九| 97视频在线播放| 99自拍B亚洲| 日韩在线电影| 成 人 影视 一区 二区 三区 四区| 中文字幕免费观看| 在线欧美69V免费观看视频| 国模91| 国产一在线观看| 天天操天天日天天干| 手机在线观看不卡无码av| 色香综合天天影视综合| www久| 久久久久深夜无码| 五月婷婷激情| 亚洲精品国产熟女| www久久精品| 日韩三级视频一区二区三区| 日日夜夜摸| 亚洲av热热色| 麻豆啪啪啪视频| 亚洲色图A| 一二三啪啪专区| 日韩国产欧美伦理在线| 日韩在线国产字幕| 熟妇一区二区三区| 亚洲中文一区二区三区| 九九热AV| 久久精品一区一起草| yazhousetuoumei| 玖玖资源综合在线视频| 天天看天天日天天操| 超碰一区二区| WWW.加勒比人妻一区不卡.com| 久草资源在线| 国产后入清纯| 观看免费区二区三区二| av一区二区三区 中文| 亚洲影院成人| 亚洲人妻久久久| 96久久久精品| 久草资源在线视频官方总站日韩丝袜美腿 | 水澄无码AV| 国产九九九九九九九九| 人人操人人操人人人操| 天天插网| 国产熟女无套内射| 一卡二卡三卡| 日韩内| 中文日韩欧美熟| 五月丁香综合激情| 亚洲高清无码在线桃色| 欧美Ⅴ性爱| 亚洲在线| 亚洲欧美碰碰| 在线视频 亚洲精品| 欧美日韩小说| 久久久性少妇| 青青草依人大香蕉| 97久久精品不卡| 中文字幕一区二区三四五区日日骚| 巨爆乳一区二区爆乳区| 秋霞成人做爱| 亚洲精品xxx| 欧洲性爱无码区| 最新日本中文字幕| 国产福利精品98视频| 精品97久久| 亚洲中文字幕熟女少妇一区二区| 青青草精玖玖69精品| 久久色激情一区二区三区| 欧美亚洲性爱一区二区| 用力操死我| 久久久国产精品人妻丝袜| av大香蕉网站| 亚洲精品一区二区免费在线观看| 超碰在线人妻| 夜色五月天| 国产女人高潮视频| 美女露胸露屁股| 亚洲第一页欧美| 91骚妇| 色哟哟av网址| 亚洲资源一区| AV天堂国产| 免费的很黄很污的全部视频| 18禁免费视频| 欧美激情五月天| Av色五月| 老司机免费视频在线91| 国产精品69久久久久孕妇欧美| 真实高潮91| 射欧美综合| 欧美日韩青操| 91女日逼| 高清无码久操视频| 久久久久久亚洲中文| 狠狠操夜夜| 乱伦日本色图AⅤ| 992这里有精品| 看黑丝美女操逼青青网站| 中文子幕一二三| 中文有码9| 国产精品不卡一区二区三区av| 丰满欧美放荡少妇在线| 老鸭窝成人免费毛片视频| 色y情视频免费看| 亚洲AV秘 精品久久老牛影视| 国产又黄又爽| 国产第12页| 欧美丝袜美女电影一二三四区| 久久肏大逼| 懂色av中文字幕一区二区三区天美| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 久久久久亚洲Aⅴ无码| 91在线欧色| 久久亚洲中文字幕视频| 99.色网| 日韩精品色呦呦| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 91日韩在线| 91视频综合网| 亚洲色悠悠久久88| 99热思思| 欧美性爱第一区| 青青草原成人| 中亚精品极乱| 奇米四色影视777久久久| 3级毛片一二| 97视频7| 狠狠操综合| 免费人成毛片乱码| 97操b| 亚洲se电影| 91人妻视频| 911av网站免费观看| 天美国产三级传媒| 人妻中文字幕日韩电影| 日本人妻中文字幕精品| 亚洲天堂男人天堂网| 九99久久| 国产天天骚| 中文字幕在线高清男人的天堂| 97超碰欧美手机在线| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 女人与公拘交酡2020视频| 久久久精品视频欧州站| 91无摭挡| 免费97视频| 国产精品乱码久久久久久| 激情五月天丁香| 国产午夜精品在线观看| 日韩啊V| 青青草综合在线| 粉嫩AV一区夜夜嗨| 婷婷五月天成人网| 亚洲综合五月天婷婷丁香| 大香蕉婷婷| 天天日B夜夜干B时时操B| 九九精品99| 国产精品免费久久久久久久久久| 天天爽天天| 在线啊啊啊啊| 成人一区二区三区四区| 上海一级黄片| 91无码人妻| 岛国A V在线免费看| 青草伊人久久| 久久HD| 国产精品蜜乳AV| 久久久久久久一级黄色打同平台| 免费国产电影一区二区| 天天夜夜rb| 久久一本大香蕉 | 国产精品视频播放| 五月天色图| 日韩精品一二三四| 日韩一级二级| 丰满翘臀美女影院视频| 青青草操逼逼视频| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 日韩国产中文字幕| 亚洲乱码国产乱码精网站| 丰满人妻一区二区三区四区| 中文字幕aⅴ在线视频| 日本不卡高清视频| aaaa黄片| 91九色首页| 欧美九九爱| 欧美第一页性| 欧美色997| 校园春色中文字幕AV| 免费成人在线熟妇网| 久久久久斤小| 97免费视频在线观看视频| 亚洲男人天堂视频| 精品久久97| 97网色| 少妇一区二区三区精选| 操操逼视频| 亚洲色诱惑| 久久久久无码| 人人操超碰在线| 人妻一区二区三区四区视频| 97人人夜夜精品视频| 18禁精品网站在线看| 久久草大香蕉| 国产精品老师| 怡春苑东京热| 日日夜夜免费| 色香色欲天天综合网天天来吧| 激情久久久| 麻豆久久久一区二区| 人妻黑丝袜电影| 精品视频在线观看精品| 国产成人网站在线观看| 欧美熟妇亚洲版| 无码高清操逼| 久久久精品日本一道| 超碰97在线中文| 麻豆av一区二区| 丁香六月东京热| 免费9 1久久| 五月天亚洲色图| 狠狠干综合| 91黄射| 制服乱伦| 国产一区二区精品久久久不卡蜜臀| 日韩亚洲中文有码视频| 久久亚洲不卡一区二区三区| 国产蜜臀精品一区二区尤物| 天天视频黄网站| 天天热精品| 亚洲色图殴美色图激情乱伦| 亚州色国| 免费看A片毛毛片在线播| 欧美 日韩 婷婷 五月| 夫妻天天操岛国视频| 婷婷导航| 中文一区二区三区影院| 亚州精人品大香蕉| 老司机深夜影院18未满| 国产久久一区二区| 99久久九九| 成人小说另类在线| 人人爽人人精品乱人伦AV| 亚洲av无线观看| 亚洲图片 欧美电影| 人妻少妇久久久| 亚洲 无码 偷拍| 十八禁电影伊人网| 六十路日本| 久9无限国产| 一本一首道人妻少妇免费久久| 93人人操人人| 日韩有码中文字幕女同性恋| 色 亚洲 91| 久久女婷| 日韩欧美中文日韩欧美色| 蜜臀99久久国产| 日日A∨| www.色五月| 九月激情婷婷| av毛片aaaaa免费看| 亚洲九九视频| 综合天天。| 中文字幕超碰CAO| 老熟妇一区二区三区…| 亚洲国产精品久久AV| 国产精品久久久久久久久久久久久久久| 日本人妻A片成人免费看片| 国产精品一区av在线| 国产亚洲日韩欧| 日韩无码一级黄色av片| 国内一区二区免费| 91东北熟女| 亚洲丝袜少妇在线| 久久久久久久性爱| 高清孕妇孕交 交| 无码人妻毛片丰满熟妇精品区| 亚洲91网。| 啊啊啊啊啊啊好湿好爽视频| 嗯嗯嗯,草死我| 色女网日韩| 高清不卡视频| 黄呦呦在线| 欧亚久久偷拍视频| 91老熟女老女人国产老太| 新怡红院| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 天无日色综合| 日韩欧美女优电影| www.高清无码诱惑一区.com| 1000午夜黄色| 91操熟女视频| 9Ⅰ老熟女| 香蕉精品二区二区| 大学生美女口爆| 免费av在线播放二区| 小视频玖玖| 久草五月| 久久 亚洲 日韩 人妻| 成人A片男人的天堂| 亚洲男人天堂视频 | 日韩性爱电影一区| 大地资源在线观看中文第二页| 91啪啪视频| 色狠狠综合噜一二三区| 999熟女精品| 成人日本精品九区| 久久东京热成人| 九九九九精品九九九九| 欧美国产精品| 蜜臀av一区二区三区免费观看| 欧美日韩人人精品| 欧美一区二区三区成人性生活| 男人的天堂va在线| 久久精品国产亚洲AV高级北京| 色五月综合网| 91亚.色| 国产精品福利视频播放| 亚洲色五月| 情色日播放AV| 久久久91| 亚洲一区中文字幕一区| 少妇精品久久久| 亚州性色| 欧美人妻一区| 国产久久久久影院老熟女| www.av家庭乱伦| 久草视频分类在线| 日韩无码服务区| 入口操逼网站| 亚洲欧美综合网站| 中国女人内射6XXXXX| 久久久偷拍| 在线观看免费视频国产| 97 视频在线| 亚洲一区二区三区中文字幕| 女人的天堂大香蕉网| 影音先锋每日最新资源在线观看| 亚洲第91页| 三级日韩一区二区三区| 偷拍 精品 另类 四区| 女人精品内射国产99| 日本青青草在线| 秋霞一集毛片观看| 碰人碰碰人人开房人肉| 五月婷色| 男人的天堂 在线一区| 91暧暧| 午夜超爽| 国偷自 一区| 一本道综合色图| 9色国产精品一区粉嫩| 中文字幕版| 色999五月色| 亚州综合色| 97视频620| 91 刺激在线| 日韩精品在线视频在线观看| 日韩欧美天堂| 麻豆黄色五月天| 一区操逼日比视频| 97视频在线免费观看| 九9精品| 台湾佬中文娱乐自偷自拍| AV中亚| 欧亚韩国999| 久久亚洲不卡一区二区三区| 日本熟女中文字幕一区| 久久9免费视频| 91N五十路| 极品尤物自安慰| 日本在线999| 久九9精品| 国产丝袜美女诱惑| 日本国产成人亚洲精品无码| 精品久久久久久无码| 少妇的嫩逼图片| 国产又长又大又粗的视频| 久久久久久久久久久久黄色| 情色AV电影| 四虎影院成年人片| 91free福利| 欧美麻豆成人同性GⅤ在线| 久久综合激情| 极品白嫩美少妇在地板上位骑射淫水泛滥| 亚洲高潮影院| 天天久久| 男人的天堂日韩| 欧美制服网站美腿丝袜| 美女尤物福利视频| 欧洲天天在线| 麻豆区99999| 久久久99久9| 有码色中文字幕在线观看| 午夜欧美J进J出白浆流出久久久| 屌妞视频久久久久久久| 91综合国产精品| 中文字幕人妻色偷偷久久皮| 国内外毛片在线观看| 变态另类专区| 亚洲成人激情小说视频| 日韩字幕一区| 精品一区二区亚洲国产| 久久一级无码精品毛片6| 久久久久久久唑| 中国熟女老妇仑乱一区二区三区| 一级AV性爱| 亚洲日韩国产欧美综合v| 精品久久一区二区三区四区五区| 91欧美经典| 亚洲一区二区精品福利| 亚洲色吧网| 青青草手机在线免费观看| 2017天天透天天通天天擦| 蜜桃臀一区二区三区久久| 欧美,日韩,中文,另类| 大JI巴好深好爽又大又粗视频| 性爱网站一区二区| 岛国视频一二三区| 亚洲欧美自拍偷拍| 欧美亚性天堂| 蜜桃视频一区二区三区 | 97人人干| 亚洲大胆人体av| 精品91日日夜夜超清资源| 最新av网站在线观看| 欧美激情综合色综合啪啪五月| 欧美日韩人人早| 丝袜 中出 制服 人妻 美腿 中文字幕| 亚州综合在线| 色人久久| 精品美女人人干| 正在播放国产精品一区| 午夜精品久久久久久久男人的天堂 | 久久久久成人亚洲国产| 夫妻四区五区六区| 久久久精品| 天天综合网国产| 欧美 亚洲| 十八岁啪啪视频免费看| 亚洲色悠悠久久88| 亚洲操逼无码| 久肏视频字幕| 99热在线观看| 亚洲中文字幕久久无码精品| 少妇xx精品| 久久久专区| 十八禁的黄污污免费网站| 天天摸夜夜摸| 操逼天美3区| 999熟女精品| 亚州操逼网| 超碰人妻久久| 亚洲天堂另类小说男人| 午夜国产乱伦视频| 校园春色五月天| 国产久久久久久久久一区二区| 72av视频| 亚洲天堂自拍| 亚洲国产日韩欧美熟妇在线| 天天久久| 九九夜精品九九在线| 国产操操日韩三级黄| 青青草依人大香蕉| 九九色热| 国产成年精品高清在线观看91| 97bbn| 激情婷婷| 青娱乐亚洲自拍| 天美麻豆一区二区三区| 色色综合97| 小少妇| 亚洲成?V人片在线观看福利| 国产呦精品系列在线观看| 午夜福利在线视频1000| 全免费a敌肛交毛片免费| 亚洲国产美女久久久久| v91av| 精品少妇一区二区三区| 久久久久七视频| 一区二区你上我| 亚洲aV无码成人在线观看| 亚洲国产美女久久久久| 中文字幕人妻丝袜乱一区三区| 第二页中文字幕| 99久在线精品99re8热| 色哟哟511老熟女| 国产无码久久高清| 亚洲九九九九| 四虎精品一区二区| 亚洲欧美综合图片| 91AV天美在线视频| 一区| 色麻豆AV| 怡红院亚洲怡春院av| 久久久久密臀一区二区| 国产白丝在线| 日本中文字幕高跟| 久久精品老司| 亚洲 中文 女同| 狠狠色综合网| 伊人影院中文字幕| 麻豆天美久久91| 九九成人视频| 久久大香蕉手机高清| 婷婷伊人一区| 欧美精品久久| 91白虎| 成人性交免费视屏| 日韩操啪| 天天操天天舔| 久久久久久亚洲精品中文字幕人妻| 一区二区三区四区五区高清无码永久视频| 精品夜夜澡人妻无码| 亭亭丁香激情| 国产小炒后入式| 色天天野狼综合社区| 久久久专区| 亚洲干B| 欲香欲色综合天天伊人| 一级一性爱免费视频| 国产最新小视频在线播放下载 | 欧美一级黄片视频在线| 麻豆久久视频在线地址| 一区二区三区 丝袜高跟| 麻豆传媒一区二区在线观看| 亚洲欧美日韩不卡人妻| 亚洲性爱免费电影| 夜夜一区二区| 亚洲色图 91| 秋霞一集毛片观看| 最近2019中文字幕国语免费版| 97碰在线视频| 青青草字幕AV| 人人爱人人乐人人操| 国产成人网站在线观看| 人妻少妇色综合| 欧美的性爱网站免费| 丝袜AV一二三区| 91青青在线| 国产精品 久久久精品一牛| 99re国产中文字幕| 我想要啊 啊 啊| 亚洲 欧美 制服 另类 自拍| 欧美精品丝袜久久久中文字幕| 在线洲亚线| 极品白嫩美女白浆成人福利在线看| 久草资源欧美在线视频| 欧美AB在线| 六月丁香啪啪| 91国产丝袜美女| 久久精品国产亚洲AV高清演员表 | 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 久热伊人| 久久精品国产亚洲av水密被窝| 亚洲色狠| 天天综合网1| 国产51色综合久久免费| 爱爱动态试试看6 0秒| 国产家庭乱伦性爱视频| 粉嫩AV一区夜夜嗨| 岛国色情视频在线观看| 劲爆欧美人妖三区91| 婷婷亚洲色| 另类亚洲一区二区三区| 超碰97在线色男人??| 性爱av网站| 亚洲成人ab| 这里都是精品在线观看| 女人18精品一区二区三区| 成人av免费观看| 校园春色综合网| 国产精品天干天干综合网麻豆| 五月天玖玖资源站| 起碰97| 色哟哟1区2区| 亚洲不卡不卡中文字幕不卡 | 妇女视频网站| 狠狠干婷婷| 亚洲啪AⅤ永久无码| 青青草原香蕉日本Ap| AV一二区| 爽爽淫人网| 夜夜天天噜狠狠爱2021| 亚洲同性aV综合| 成熟熟女国产精品一区二区| 久久久五月天| 午夜爽爽爽在线观看永久入口姬片| 亚洲高清91| 精品二区三四区五电影 | 久久久极品| 91色伦综合| 亚91亚洲网| 久久香蕉国产传媒一区剧情天美| 插穴性爱视频在线观看| 精品人妻视频入口| 91超碰在线| 欧美色另类| 草草草草视频| 精品九区| 999综合网| 亚洲精品精品一区二区| 老熟妇一区二区三区…| 在线观看成人性爱免费小视频| 熟妇乱伦一区二区| 97免费在线视频| 日本影视久久免费| 超碰97久久| 欧美性第1页| a人片中文字幕一区二区| 人妻81p| 亚洲 国产 精品一区| 久久美女国产| 午夜福利免费福利视频| 欧美亚洲一级在线观看| 国产色产精品在线观看| 另类图片欧美激情综合| 久久久久久亚洲Av无码| 无码黑人精品一区二区三区三| 青春草莓视频在线观看网址| 日韩性爱1级片视频| 日本免费中文字幕在线| 精品成人亚洲午夜电影| 国产一区二区啪啪视频| 久久五月份| 亚州精人品大香蕉| 青青草在线成人视频| 躁躁日曰躁2020| 一卡二卡在线播放| 97视频在线播放| 国产自产自拍| 后X久久| 97精品国产精品免费观看| 九九九999久久久网站| 国产无马在线| 丁香五月天社区| 久久精品老司| 少妇淫妇久久久久久久| 午夜福利精品| 五月色丁香| 亚洲色棕合| 欧美日韩黄片精品在线| 99re6久热只有精品6在线直播| 亚欧美综合网。| 欧美性性性| 不卡一区二区日本视频| 欧美日韩资源在线| 人妻欧美| av在线资源| 日韩欧美中文字亚洲慕| 乱伦系列一区二区| 夜夜高潮夜夜爽| 久一区久久蜜桃| 色情综合网| 人人妻人人爽一区二区三区| 久久‘黄片视频| 狠狠做深爱婷婷久久二区| 成人三一级一片aaa| 九月婷婷| 欧美色图亚洲激情| 色婷婷电影网| 屁股久久久久久| 蜜臀久久99精品久久久老,,| 免费公开人人操| 伊人色综合网| 亚洲熟女人妻中文字幕一区二区| 韩国一级婬片A片AAAAA| 少妇高潮喷水无套久久久久久| 午夜激情成人在线观看| 婷婷五月天久久精品视频一区二区三区| 啊啊啊在线看| 午夜福利成人免费视频| 欧美视频激情久久久久久| 少妇淫妇久久久久久久| 日本www操操操| 超碰地址97| 睡产熟女乱伦| 国产成人亚洲精品无| 97se综合网| 狠狠色噜噜狠狠狠狠2018| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 狠狠爱综合| 久久内射| 国产精品久久久久久久久久久久久久久久| 女人爽到高潮潮喷18禁网站| 热99这里有精品综合久久 | 久久手机视直播| 91精品丝袜在线观看| 东北女人操逼| 久久只有精品一区二区三区| 国产懂色精品国产av| av三级电影在线播放| 一二区在线观看视频| 91美女视屏| 天美麻花大全视频| 国产乱色国产精品免费视| 怡红院成人视频| 97超碰巨乳| 日韩精品三区四区| 中国国产精品一区视频| 丰满人妻一区二区三区免费 | 97色欧洲| 国产高清在线自在拍69| 国产激情片在线观看| 草草影院日本第一页| 91大神精品长腿在线观看网站| 奶水 人妻 哺乳 在线| 91国产丝袜美女| 大香蕉综合在线| 91丝袜激情在线| 九九热免费国产视频婷婷伊人五月 | 欧美一区二区三区成人性生活| 免费看污网站| 久久久久久久久久久人妻| 亚洲色图久久精品蜜| 日本在线一二 | 91 刺激在线| 97人肏| 粉嫩AV一区夜夜嗨| 超碰97最新人妻| 97超碰逼| 久久久久9久久久久| 五月激情天| 中文字幕在线免费观看视频| 又大又白奶子| 久久婷婷色综合一区二区三区| 日韩精品一区二区三区四虎影视| 国产女人成人精品视频| 精品少妇一区二区三区在线视频| 丁香六月东京热| 熟女视频久久| 久久欧美1卡2卡3| 白嫩嫩一区| 日韩欧美丝袜诱惑| 久久久久久裸体| 天久久久噜噜噜久久国产精品爽爽 | 亚洲资源站| 少妇人妻在线| 久久精品国产亚洲5555| 欧美一区二区三区另类精品| 大香网站| 天操老女人| 91人人| 日本国产亚洲一区在线观看| 国产成年精品高清在线观看91| 无码伊人久久大杳蕉中文无码| 九九九综合精品| 日日骚一区二区三区| AV一区观看| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 久久这里只精品99re66图| 1024午夜激情男人的天堂| 久久婷婷电影网| 中文字暮97| 久久伊人影院| 欧美淫穴| 亚洲色性| 天美传媒国产原创中文字幕亚洲欧美另类 | 蜜桃视频一区二区三区在线观看| 精品欧美日韩在线观看| 妇女性内射冈站HDWWWCOM| www.狠狠干.coom| 另类图片天天影视| 91欧美| 色99999| 国产成人资源| 国产最火爆久久国产网站网站| 国产成人免费观看在线视频| 久热99999| 在线岛| 综合亚州欧美| 九九热超碰| 人人操人人93| 亚洲欧洲色情高清| 淫荡少妇免费| 天躁夜夜躁2021| 欧美熟女少妇| www.91逼逼.com| 天天操美美| 天天爱天天操| 亚洲欧美色图| 99色婷婷中文字幕乱色| 精品国产丝袜一区二区三区乱码| 蜜桃臀一区二区三区久久| 91超级碰| 先锋影音av先锋一区| 欧美激情色婷婷花野真衣一区二区 | 91男人天堂网| 亚洲AV无码| 人人操人人操人人操人人操人人操人人人11.CM| 熟女91网| 最新亚洲风情电影| 99爱在线视频| 免费在线黄片视频| 亚洲欧美碰碰| 日韩欧美偷拍美女视频| 国产www色在线观看| 96久久久久| 日韩熟女视频二区| 白丝1区2区3区| 乱伦a片视频| 亚洲日韩天堂| 熟女熟妇伦久久影院毛片一区二区| 日本有码影片下载| 夜夜操二区| 亚洲精品人妻吞精av| 日韩人妻播放| 老熟女乱子伦中文字幕一区二区| 欧美综合色图片| 九久9热| 青青草中文-久久青草精品一区二区三| 日韩熟女乱伦中出| .精品人妻一区二区三| 青青青青青手机视频| 中精品一区二区三区| 熟妇国产免费一区| 欧洲精品欧洲精品| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 亚洲欧洲无码一区夜| 人妻无码视频一区二区三区久久| 欧美女同在线| 国产亚洲深夜激情| 嗯嗯啊啊好爽| 福利视频香蕉免费一区二区在线| 欧美色综合| 精品亚洲天堂| 老司机天天操| 国产AV无码AV| 婷婷伊人| 97视频网站在线观看| 操死我了啊啊啊| 国产午夜精品一区二区三区牛牛|