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

ARTICLE DETAIL

資訊詳情

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

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

Java全棧物聯(lián)網(wǎng)平臺源碼解析:從協(xié)議接入到Web組態(tài)大屏 簡介基于 Java 主流技術棧SpringMVC、Spring、MyBatis與 MySQL 構建的物聯(lián)網(wǎng)監(jiān)控平臺源碼界面由 HTML、jQuery、CSS 實現(xiàn)適用于工業(yè)設備監(jiān)控、智能家居環(huán)境監(jiān)測等場景面向需要快速搭建數(shù)據(jù)采集與遠程控制系統(tǒng)的開發(fā)者或運維人員。系統(tǒng)集成 TCP/IP、HTTP、MQTT 等通訊協(xié)議可無縫對接海康攝像頭并具備報警信息管理、自動控制觸發(fā)、歷史數(shù)據(jù)查詢與報表導出、子賬戶與場景授權等完善功能。壓縮包約 832.96MB共 2000 個文件以 jsp、java、js、css 前后端代碼為主附帶 sql 數(shù)據(jù)庫腳本、xml 及 properties 配置、pdf 與 doc 文檔方便二次開發(fā)和部署維護。目前已有 245 人學習下載文檔齊全、目錄結構清晰可幫助讀者節(jié)省大量自研時間是一套值得參考的成熟物聯(lián)網(wǎng)監(jiān)控解決方案。1. 一套 Java 全棧物聯(lián)網(wǎng)平臺源碼能替你省掉的是協(xié)議棧和組態(tài)這兩件難事做物聯(lián)網(wǎng)平臺的人都有個共同感受設備接入和組態(tài)畫布這兩件事比想象中耗時得多。一臺 Modbus 設備、一個 MQTT 傳感器、一路??禂z像頭協(xié)議各不相同每接一種就要寫一遍解析、斷線重連、數(shù)據(jù)入庫組態(tài)更是從零開始畫圖元、做屬性綁定、調實時刷新。這套基于 Java 全棧技術的物聯(lián)網(wǎng)平臺源碼把組態(tài)、大屏可視化和通訊協(xié)議集成MQTT、TCP、海康攝像頭打包在一起意味著你拿到的不是一套空殼代碼而是一條從設備數(shù)據(jù)到瀏覽器頁面的完整鏈路。如果你正在評估是自研還是基于源碼二次開發(fā)這篇文章會告訴你這套源碼怎么拆、怎么跑、坑在哪。2. 先拆解這套源碼組態(tài)、大屏、協(xié)議接入各自想解決什么問題2.1 Web 組態(tài)把傳統(tǒng)組態(tài)軟件的能力搬進瀏覽器到底少了什么傳統(tǒng)組態(tài)軟件像 WinCC、KingSCADA裝在 Windows 上拖拽圖元、配置采集驅動功能很全但二次開發(fā)基本走封閉接口。Web 組態(tài)的思路不同前端用 SVG 或 Canvas 畫圖元把圖元的位置、顏色、數(shù)據(jù)源保存成 JSON后端只負責存儲和推送實時值。運行時瀏覽器拿著 JSON 渲染畫面再通過 WebSocket 接收數(shù)據(jù)刷新。這套 Java 全棧源碼里的組態(tài)模塊常見做法是前端 Vue SVG后端存組態(tài)模板和設備綁定關系。好處是部署簡單客戶打開瀏覽器就能看省掉插件安裝。代價是復雜動畫、歷史曲線回放、報警聯(lián)動這些傳統(tǒng)組態(tài)自帶的能力在 Web 組態(tài)里往往需要自己補。源碼里一般內(nèi)置了基礎圖元庫比如管道、閥門、儀表、傳感器圖標夠畫流程工藝圖。你要是想把它做成類似 WinCC 那種重型畫面就得往圖元腳本和動畫編輯器里加代碼。組態(tài)的核心不是畫布渲染而是圖元和數(shù)據(jù)源的綁定。一個溫度計圖元綁定設備的 temperature 屬性運行時后臺把最新值推到前端圖元指針跟著轉。這個綁定關系的數(shù)據(jù)結構設計決定了組態(tài)好不好擴展。源碼里通常會有類似dataSource: { deviceId: dev001, property: temperature }的 JSON 配置圖元組件統(tǒng)一讀取這個字段再訂閱對應的實時通道。理解了這條鏈路你看組態(tài)模塊的源碼就有主線了。2.2 可視化大屏從設備數(shù)據(jù)到頁面像素的完整鏈路可視化大屏是物聯(lián)網(wǎng)平臺的招牌功能。工廠產(chǎn)值、設備在線率、報警數(shù)量、環(huán)境溫濕度全堆一個屏上。大屏的數(shù)據(jù)鏈路比組態(tài)更長設備上報 → 協(xié)議網(wǎng)關解析 → 后端業(yè)務處理 → 寫入數(shù)據(jù)庫 → 推送通道 → 前端圖表渲染。任何一環(huán)慢了大屏就出現(xiàn)數(shù)據(jù)斷層。源碼里大屏常見的數(shù)據(jù)推送方式有兩種一種是大屏頁面直接訂閱 MQTT繞過后端業(yè)務層另一種是后端轉發(fā)到 WebSocket前端再訂閱。我更推薦后者。因為大屏需要展示的不只是原始測量值還有聚合結果比如最近一小時的平均溫度、設備故障率。這些計算放在后端做前端拿現(xiàn)成數(shù)據(jù)渲染鏈路更穩(wěn)。直接訂閱 MQTT 雖然實時性高但長時間大流量下前端很容易被消息淹沒也不方便做權限控制。大屏和歷史數(shù)據(jù)是綁在一起的。常見方案是后端定時把設備數(shù)據(jù)從 Redis 或 MySQL 聚合到一張大屏統(tǒng)計表前端展示時先查一次歷史數(shù)據(jù)再訂閱實時增量。這套源碼里的大屏模塊一般會提供設備總數(shù)、今日報警數(shù)、實時曲線這幾個基礎組件你可以照著擴展。做二次開發(fā)時先摸清大屏接口返回的字段和推送消息的格式再動手改圖表。2.3 協(xié)議接入層MQTT、TCP、海康攝像頭在源碼里的位置協(xié)議接入層是物聯(lián)網(wǎng)平臺的地基。源碼里這一層通常分三個入口MQTT 客戶端、TCP 服務端、攝像頭拉流服務。MQTT 負責傳感器、DTU、智能儀表這類小數(shù)據(jù)量設備按主題訂閱消息體多用 JSON。TCP 服務端負責 PLC、控制器、防火墻一類走自定義幀協(xié)議的設備需要做報文解析。??禂z像頭則走獨立通道用 RTSP 拉流再轉成 HLS 或 WebRTC 供前端播放。三層接進來后數(shù)據(jù)必須統(tǒng)一收口。源碼里一般設計一個DeviceMessage內(nèi)部模型包含設備標識、屬性名、數(shù)值、時間戳。MQTT 回調、TCP 解碼器、攝像頭告警事件最終都轉成這個模型再交給消息隊列和業(yè)務層。統(tǒng)一模型的好處是上層做告警、存儲、大屏不用關心底層是什么協(xié)議。你接新設備時只需要把新協(xié)議解析成DeviceMessage其余鏈路不用動。選型和架構說完了下面進入實際操作。把源碼跑起來你會遇到第一個問題環(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 起。我習慣先看pom.xml再定 JDK省得啟動時碰到UnsupportedClassVersionError。數(shù)據(jù)庫這塊MySQL 8 是主流注意驅動要配套pom.xml里用的是mysql-connector-j那版本就得兼容 MySQL 8。Redis 用于緩存和實時數(shù)據(jù)臨時存儲版本 6 以上就行。MQTT Broker 是獨立軟件平臺本身不實現(xiàn) Broker。源碼里如果配置的是本地端口 1883那你需要先啟動一個 EMQX 或其他 Broker。有的源碼在pom.xml內(nèi)嵌了 Moquette 這類輕量 Broker但生產(chǎn)不建議用。用 EMQX 的好處是管理界面能直接看連接數(shù)、訂閱關系出了問題好排查。部署時我把 EMQX 裝在獨立服務器避免和業(yè)務應用搶資源。環(huán)境版本搭配參考下表避免頭疼組件推薦版本備注JDK8 或 17看 Spring Boot 主版本MySQL8.0必須 utf8mb4 字符集Redis6.x/7.x用于緩存和實時數(shù)據(jù)MQTT BrokerEMQX 4.x/5.x或 MosquittoNode.js16/18前端構建按 package.json 要求3.2 初始化數(shù)據(jù)庫建庫腳本、時區(qū)和 utf8mb4 一個都不能少數(shù)據(jù)庫是源碼跑起來的第一道坎。源碼目錄里一般有個sql/文件夾里面放iot_platform.sql。我習慣先手動建庫指定字符集和排序規(guī)則再導入數(shù)據(jù)避免 MySQL 默認 latin1 導致中文亂碼。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 和生僻字第二條命令導入建表語句和初始化數(shù)據(jù)。如果導入報Unknown database說明第一條命令沒執(zhí)行成功先確認 MySQL 登錄權限。導入完成后用show tables;檢查是否有設備表、規(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 驅動用的和數(shù)據(jù)庫字符集無關但業(yè)內(nèi)習慣寫上serverTimezoneAsia/Shanghai防止 MySQL 8 的時區(qū)報錯。Redis 密碼如果沒有留空。還有人會漏掉web端口配置確認server.port是你要的端口默認 8080。3.3 按順序啟動后端、協(xié)議網(wǎng)關、前端以及驗證標準啟動順序有講究。先啟動 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讓進程在后臺運行日志重定向到logs/app.log。前端npm install第一次可能很慢掛代理也常見耐心等。驗證標準后端日志出現(xiàn)Netty server started或Tomcat started on port(s): 8080說明啟動成功。然后訪問http://localhost:8080/api/health返回{status:UP}。前端頁面能登錄、能看到默認的組態(tài)畫面和大屏模板說明源碼環(huán)境跑通了。這個健康檢查接口如果 404就看日志里有沒有DispatcherServlet報錯。4. 設備接入與組態(tài)綁定實操MQTT、TCP、海康攝像頭怎么打通4.1 MQTT 接入訂閱設備消息、解析 payload 并寫入業(yè)務表大多數(shù) IoT 源碼都會用 Eclipse Paho 或 Spring Integration MQTT 做客戶端。核心是訂閱設備上報主題把payload轉成業(yè)務數(shù)據(jù)。先看一個典型的訂閱回調代碼。Component public class MqttMessageHandler { Autowired private DeviceDataService deviceDataService; public void handleMessage(String topic, byte[] payload) { // 過濾非設備主題避免處理系統(tǒng)消息 if (!topic.startsWith(device/)) { return; } String body new String(payload, StandardCharsets.UTF_8); // 假設 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ù)據(jù)服務落庫并推送到實時通道 deviceDataService.savePoint(deviceId, temperature, temperature); } }邏輯說明這個方法只關心device/開頭的主題防止 MQTT 系統(tǒng)消息混入業(yè)務線程。解析 JSON 后把設備 ID、屬性名、數(shù)值傳給savePoint這一步就是統(tǒng)一收口。你接新設備時只需要改 payload 解析這一段后面的入庫、推送、告警邏輯不用動。參數(shù)說明QoS 建議用 1保證消息至少送達一次同時避免 QoS 2 的性能開銷。Broker 端配置max_message_rate等參數(shù)前先壓測再調不要盲改。clientId必須唯一否則 Broker 會先踢掉舊連接出現(xiàn)反復斷連。4.2 TCP 接入解決粘包/半包自定義報文長度字段TCP 設備接入復雜度比 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)容不完整調用resetReaderIndex回到標記位置等下一次數(shù)據(jù)到達。out.add輸出的就是完整的一幀字節(jié)數(shù)組業(yè)務層拿到后不再關心字節(jié)邊界。TCP 設備協(xié)議千差萬別常見的有 Modbus、自定義頭部CRC 校驗、JSON 換行符分隔。我把解碼器設計成策略模式每種協(xié)議一個FrameDecoder通過工廠類注冊進去。業(yè)務 handler 接收解碼后的幀再按協(xié)議類型解析。這個分層能省掉后期很多改協(xié)議的痛苦。4.3 ??禂z像頭接入RTSP 拉流、鑒權過期與 Web 播放??禂z像頭接入到 Java 平臺最穩(wěn)的方案是后端用 FFmpeg 拉 RTSP 流轉成 HLS 分片前端用 video.js 播放。先看 FFmpeg 轉流命令。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強制走 TCP避免 UDP 在弱網(wǎng)下丟包花屏/Streaming/Channels/101是海康主碼流102是子碼流預覽用子碼流更流暢-hls_time 2每個分片 2 秒hls_list_size 3只保留 3 個分片降低延遲。這個命令在 Java 里用ProcessBuilder啟動注意定期檢查進程是否存活。攝像頭鑒權有個常見坑??禂z像頭空閑一段時間后會要求重新鑒權FFmpeg 進程還在但流已經(jīng)不更新了。我一般在 Java 里定時比如每 30 分鐘檢查 FFmpeg 進程輸出如果接收不到數(shù)據(jù)或者返回碼非零就殺掉進程重新拉起。另外并發(fā)拉流很吃帶寬如果 20 個攝像頭同時推主碼流服務器帶寬直接打滿。我的做法是預覽用子碼流 轉碼錄像才用主碼流。很多平臺為了省資源會直接在前端用 WebRTC 播放但??禂z像頭原生不支持需要ZLMediaKit或SRS做二次轉封裝。如果這套源碼里沒有包含流媒體服務器用 FFmpeg 轉 HLS 是最省事的方式延遲 3-5 秒對于監(jiān)控畫面足夠。4.4 組態(tài)與大屏把設備數(shù)據(jù)綁定到圖元和圖表組態(tài)畫布的圖元綁定數(shù)據(jù)源核心是 JSON 配置。下面是一個簡單的溫度計圖元配置。{ type: thermometer, id: node_01, x: 120, y: 80, dataSource: { deviceId: dev001, property: temperature, aggregate: latest } }邏輯說明dataSource告訴運行時這個圖元的數(shù)值從哪里來。后端收到設備數(shù)據(jù)后根據(jù)deviceId和property找到對應圖元通過 WebSocket 推送新的數(shù)值。aggregate字段表示取值策略latest是最近一次值也可以寫成avg_1m表示最近一分鐘平均值。前端收到推送后更新圖元代碼結構大致如下。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在畫布緩存中查找圖元實例避免頻繁操作 DOM。setValue的方法圖元內(nèi)部可自行實現(xiàn)儀表盤轉指針閥門圖標變色數(shù)字直接更新。大屏圖表比如 ECharts 折線圖同理訂閱device_point主題往series里追加數(shù)據(jù)再做時間戳窗口裁剪。組態(tài)模塊最容易設計混亂的是「保存」和「運行」兩條路徑。編輯時前端是畫布組件保存時把整個畫布的 JSON 提交后端運行時畫布組件進入只讀模式后端只推數(shù)據(jù)。兩邊狀態(tài)要分離否則畫布一刷新編輯狀態(tài)丟失。這套源碼里如果發(fā)現(xiàn)保存后回到運行頁圖元位置變了多半是這兩個模式的數(shù)據(jù)沒有做隔離。5. 避坑與排查這套物聯(lián)網(wǎng)平臺源碼在生產(chǎn)前最常見的 5 個坑5.1 設備連上又掉線心跳和 keep-alive 參數(shù)互相打架現(xiàn)象用 MQTT 測試工具連平臺發(fā)一條消息后幾十秒內(nèi)設備就顯示離線日志里能看到 MQTT 客戶端不斷重連。原因設備端設置了自動休眠或者心跳發(fā)送間隔大于 Broker 的keep_alive超時時間。MQTT Broker 在超過 keep_alive 時間沒收到客戶端心跳包就判定客戶端掉線主動斷開連接。很多傳感器為了省電上報間隔 60 秒但 Broker 默認keep_alive只有 30 秒自然會被踢。解決排查兩端參數(shù)。EMQX 里調整keep_alive到 90 秒或者修改設備端的heartbeat_interval為 20 秒。另外設備必須支持發(fā)送 MQTT 心跳包PINGREQ有些模塊自帶心跳但默認關閉需要打開。這個坑最折磨人因為現(xiàn)象是「連接不穩(wěn)定」但不報錯只能靠抓包確認。5.2 數(shù)據(jù)已入庫但大屏不刷新WebSocket 推送與回查的時序問題現(xiàn)象數(shù)據(jù)庫里能看到最新設備數(shù)據(jù)但大屏頁面上的數(shù)值一直停在幾分鐘前刷新頁面才恢復。原因后端寫入數(shù)據(jù)庫和推送 WebSocket 消息不是同一個事務。如果先推送再提交前端拿到的是未提交數(shù)據(jù)數(shù)據(jù)庫回滾后前端就顯示了一個不存在的值如果先提交但推送失敗前端沒有新數(shù)據(jù)。還有一種是用戶開了兩個瀏覽器標簽其中一個頁面斷開了 WebSocket 但代碼沒有自動重連。解決用 Spring 的TransactionalEventListener(phase TransactionPhase.AFTER_COMMIT)監(jiān)聽事務提交事件再推送消息保證拿到的數(shù)據(jù)一定已落庫。前端統(tǒng)一封裝 WebSocket 重連邏輯斷線后指數(shù)退避重連避免重連風暴。另外大屏的接口要設計成「先查一次全量再訂閱增量」不要只依賴推送否則斷線期間的數(shù)據(jù)就丟了。5.3 ??禂z像頭畫面卡頓或黑屏碼流參數(shù)與鑒權并發(fā)現(xiàn)象攝像頭接入平臺后預覽畫面每隔幾分鐘卡一次嚴重時黑屏FFmpeg 日志報錯method OPTIONS failed: 401 Unauthorized。原因??禂z像頭默認開主碼流4K 分辨率高碼率服務器帶寬和轉碼能力扛不住另一個是 RTSP 鑒權過期FFmpeg 進程還活著但已經(jīng)失效。如果多個頁面同時看同一路攝像頭FFmpeg 會發(fā)起多次拉流浪費資源。解決預覽統(tǒng)一用子碼流地址后綴用102分辨率降到 1280x720碼率限制在 512kbps。用一條 FFmpeg 進程拉流再通過 HLS 分發(fā)給多個前端避免每個瀏覽器各自拉 RTSP。寫一個定時任務每 5 分鐘檢查 FFmpeg 進程的stderr一旦出現(xiàn)401就殺掉進程重啟。黑屏時先看 FFmpeg 日志不要盲目重啟。5.4 組態(tài)圖元保存后又變回原樣緩存和版本號沒對上現(xiàn)象在組態(tài)編輯器里拖動圖元、修改顏色點擊保存提示成功但刷新頁面后又回到舊布局。原因前端在保存時把整份畫布 JSON 提交給了后端但后端圖元數(shù)據(jù)是緩存到了 Redis保存只更新了 MySQL刷新時前端請求先打到 Redis取到的是舊緩存。還有的源碼做了一層版本號控制但編輯器的保存接口沒有遞增版本號導致新數(shù)據(jù)覆蓋不了舊緩存。解決先看后端保存接口有沒有設置CacheEvict。如果沒有手動在saveDiagram方法上加上清除對應畫布的 Redis key。如果源碼用的是版本號方案確認前端每次保存時攜帶version 1后端做樂觀鎖比較沖突時提示用戶重新加載。這個坑屬于源碼邏輯不嚴謹改起來不復雜但影響體驗很嚴重。5.5 TCP 上報數(shù)據(jù)亂碼報文定界必須放在業(yè)務解析之前現(xiàn)象串口和 TCP 設備上報的數(shù)據(jù)到平臺后臺字符串頻繁出現(xiàn)亂碼或多字節(jié)拼接錯誤十六進制看是兩個半包拼接。原因設備端響應慢數(shù)據(jù)分多次到達 Netty 的 channelRead業(yè)務 handler 拿到每個 ByteBuf 就開始解析沒等完整幀?;蛘哒嘲鼤r沒有按長度切分把兩個數(shù)據(jù)幀的尾部和一個數(shù)據(jù)幀的頭拼在一起。解決檢查解碼器是否在decode里輸出了完整的數(shù)據(jù)幀。Netty 準則是解碼器只負責定界業(yè)務 handler 只負責解析內(nèi)容。我用的是 4.2 節(jié)的DeviceFrameDecoder先把長度頭解析出來等完整數(shù)據(jù)到齊了再out.add。業(yè)務 handler 里再按照協(xié)議格式比如 JSON 或二進制結構解析。這個坑的排查手段是抓包把收到的原始字節(jié)流 dump 下來確認粘包和半包現(xiàn)象再改解碼器。6. 進階把協(xié)議接入層改造成適合自己業(yè)務的插件式框架6.1 抽象協(xié)議接口新增一種設備協(xié)議需要動哪幾個類設備接入的終極形態(tài)是插件化。定義一個統(tǒng)一接口MQTT、TCP、攝像頭各自實現(xiàn)再通過工廠注冊。public interface DeviceAdapter { // 解析出的標準消息統(tǒng)一交給上層 void onMessage(DeviceMessage message); // 啟動連接 void start(); // 停止連接 void stop(); }邏輯說明新增一種協(xié)議時只需要新建一個實現(xiàn)類在start()里啟動 Netty 服務、MQTT 訂閱或 FFmpeg 進程在onMessage()里把原始報文轉成DeviceMessage。然后在工廠類里注冊映射比如ProtocolType.TCP - TcpDeviceAdapter。上層業(yè)務不用改。6.2 數(shù)據(jù)存儲優(yōu)化時序數(shù)據(jù)按天分表別讓 MySQL 扛全量設備采集數(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 插入。查詢時也按日期路由。配合定時任務清理 90 天前的數(shù)據(jù)MySQL 壓力可控。更極端的方案是引入 TDengine 或 InfluxDB但那是后話。6.3 上線前驗證用模擬器壓測 MQTT 與 TCP 接入上限正式上線前我會寫一個模擬器用多線程同時建立 MQTT 連接隨機 topic 上報。MySQL 和 Redis 的監(jiān)控看 CPU 和連接數(shù)。TCP 壓測用 Netty 客戶端并發(fā)連接每個連接定時發(fā)長度固定報文。壓測時注意生產(chǎn)環(huán)境的連接數(shù)限制先測 1000 個并發(fā)再逐步加到 5000看服務端 GC 情況和消息延遲。這里有個血淚經(jīng)驗壓測通過不代表上線穩(wěn)因為模擬器數(shù)據(jù)規(guī)律性太強真實設備的抖動、斷線重連、亂序報文才是真正的考驗。我習慣壓測時隨機丟包、隨機停發(fā)消息逼著系統(tǒng)走一遍重連和超時分支。回到開頭說的問題這套 Java 全棧物聯(lián)網(wǎng)平臺源碼能幫你省掉的是最基礎的協(xié)議棧、組態(tài)畫布和大屏框架但真正適配你的業(yè)務場景協(xié)議插件化、數(shù)據(jù)分表、壓測上線還得自己動手。要是你遇到的是設備報警沒推出來、組態(tài)動畫不絲滑、TCP 報文結構改了一點就解不了包建議先從第 5 章的排查思路入手八成問題都在通道時序和協(xié)議定界上。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久一二三四| 久久九操在线观看| 女人天堂网| 麻豆AV96熟妇人妻| 亚洲图片偷拍视频区| 国产精品扒开腿做爽爽爽视频| 啊啊啊啊啊啊啊国| 欧美色棕合| 啪一啪免费视频| 免费人成毛片乱码| 天美传媒AV在线| 老熟女网站| 久草视频制服诱惑| 99丝袜福利在线播放| 久久久久国产精品喷潮免费观看臀| 少妇丝袜在线观看AV| 97大色网| 2019天天操天天爽天天拍| 亚洲精品男人的天堂| 日人妻视频91| 色乱二区| 激情五月天色播| 国产亚洲精品第一最新| 亚洲操逼无码| 5月婷婷6月六月丁香| 日韩中文字幕人妻视频| 操逼无码一区| 青青草操逼逼视频| 大香蕉五月天婷婷| 中文字幕高清20页视频| 97超碰色五月| 亚洲色图欧美另类在线| 在线小说视频一区| 精品成人动漫一区二区| 青青色在线观看| 熟女自慰久久久| 国产精品久久久久久久电影渣男| www久久国产精品| 久热影视| 日本精品一区三区| 新视频sss国产| 超碰综合97在线| 中文字幕三四五区| 亚洲欧美在线观看免费| 亚码激情| 超碰在线1234区| 97这里有精品| www.av在线视频| 亚洲图片欧美91N| 日欧毛片久久| 啊啊啊啊啊啊在线| 欧美人妻久久精品二区三区| 日韩丝袜人妻AV| 伦在线97| 老司机香蕉| 91色欧美| 色久桃花影院在线观看| 欧洲熟妇xxXx欧美老妇裸体| 久操网在线| 99热在线播放| 亚洲国产激情国产av| 亚洲AV无码天美传媒一区| 加勒比伊人综合| 欧美天天性| 欧美人人AAA| 超碰天天操你比| 亚洲国产精品无石码久久| 99国产精品| 日韩一999精品| 无码人妻精品一区二区三区99不卡 | 动漫区日韩区欧美区| 亚洲欧洲av影音| 最新制服中文第一页| 国产一区二区a毛片| 久久精品欧美一区蜜桃| 老女人老91妇女老热女| 成人免费不卡在线视频| 亚洲丝袜99| 无码精品一区二区三区潘金莲| 欧美老熟另类| 丰满人妻无码一区二区三区| 日韩资源网| 嗯啊抽插大香蕉网页| av东京热男人的天堂| 2017亚洲天堂| 久草资源在线视频官方总站日韩丝袜美腿| 精品视频在线观看精品| 日韩少妇丰满亚洲| 色五天伊人| 美熟女逼导航AV操逼| 5252色欧美在线| 自拍偷拍 日韩欧美| 日韩午夜国产| 国产色综合亚洲色综合吹潮| 日日碰视频网| 殴美,日韩国产伦精品| 亚洲国产一级黄色视频| 人妻无码一区二区三区久久99| 日本精品高清一二区一本到| 久久老女人| 精品九九九九九九九| 久久天天艹| 无码人妻精品一区二区三区99不卡| 亚洲国产精品无码AV久久久| 婷婷久草| 夜夜狠狠躁日日躁色视频| 国产成人自拍视频视频| 欧美97爱| 91模特在线观看| 长长久久88视频| 国产精品区在线12p| 中文字幕午夜精品久久久| 亚洲一区深夜| 国产女性无套 免费观看| 亚洲精品99999| A一级色女| 亚洲色图欧美色图制服丝袜| 中日高清无码操逼视频| 国产成人亚洲精品无码古代早漏男| 96超碰网| 日本布卡一区二三区| 精品一区二区三区四区外站| 综合干干干av久久久综合网| 丰满人妻一区二区三区| 99热国产| 婷婷综合久久| 欧洲天天在线| 午夜呻吟欧美| 久久国色天香香蕉| 操我啊啊啊啊啊| 天天色粽合合合合合合合| 亚洲av无线观看| 国产乱色国产精品免费视| 日本韩高清无砖码22o| 国内毛片四区| 中文字幕片| 69一区二区| 在线啊v一区| 国产精品久久久久久 百度| 亚洲国产av中文字幕久久| 日韩兔费看黄片| 日韩欧美性爱电影在线观看| 日韩免费福利在线观看| 精品成人亚洲午夜电影| 亚洲一卡2卡3卡4卡乱码网站| 日韩精品1区2区中文字幕| 高清无码 国产精品| 免费黄色A片| 欧美亚综合色图| 天天看综合网| 青草视频人妻在线观看| 天堂网亚洲区手机版| 三级色影综合网| 日韩肏逼视频| 天天色,天天干,天天干| 日本狠狠干| 久久9久9久99久9久9| 欧洲一区二区三区免费| 视频在线97| 色哟哟 日韩精品| 97色爱| 人人操人人狠狠操| 亚洲少妇诱惑| 色香综合| 国产农村一一级特黄毛片| 一二三啪啪专区| 日日嗷| 日本潮催一卡操| 91精品黄在线观看| 97天天插| 国产www色在线观看| 97在线欧洲| 92性色国产午夜福利在线661| 操B久久| 日韩小电影| 中国东北熟女老太婆内谢| 99性爱| 精品丰满熟妇人妻一区| 浪人综合网| 亚洲欧美激情小说| 久久91精品国产9丨久久分亭 | 亚洲精品性爱片| 97免费在线视频在线观看| 青青草AV色| JIZZJIZZ国产精品喷水| 久久精品国产久精国产| 综合操逼| 亚洲午夜蜜臀| 日韩成人高清一区二区| 曰本精品久久久| 国产精品在线免费| 人摸人人操人| 中韩中文字幕在线观看| 色网在线| 91久热这里只有精品| 日韩综合无码一区久久92| 久久国产三区| 日本福利二区视频| 欧成人精品H无码| 日本精品高清一二区一本到| 射丝袜高跟鞋99| 欧美日韩小说| 黑人中出21连凳花野真衣| 在线视频日韩欧美国产| 91 在线亚洲| 精品久久人妻成人网| 看看小穴| 99re国产中文字幕| 热久久九九热| 九X超碰| 视频分类 国内精品| 一本色道无码DVD中文字幕| 色综合久久888| 好淫网一二三视区| 一级做a爰片性色毛片久久| 丝袜熟女2P| 电家庭影院午夜69久久夜色精品国产69乱 | 91 综合网| 色五月婷婷久久| 中文字幕欧美精品亚洲日韩蜜臀| 色综合网1| 麻豆精品.欧美精品.日韩精品.| 色999;丁香五月| 欧美性夜| 有码色中文字幕在线观看| 免费福利视频中文字幕| 欧美不卡五十路| 久久天天艹| 丝袜色综合| 国产做?爰片久久毛片?片美国| 亚洲丝袜二区在线| 亚洲另类久操网| 内射老妇BBWX0C0CK| AV丝袜少妇| 色yeye成人免费视频| 97se亚洲综合自| 嗯嗯嗯,草死我| 精品无码久久久久久国产浪潮| 欧美在线色| 欧美一级色| 天天干天天舔| 伊人九九九| 熟女熟妇伦久久影院毛片一区二区| 特级丰满少妇一级AAAA爱毛片| 2020天天色综合| 天天爽天天| 欧美偷拍区| 漂亮人妻被强中文字幕hd| 国产原创精品| 婷婷综合五月| 亚洲乱伦图片视频| 久久永久无码人妻视频| 久久午夜神马| 91久久久老司机| 色丁香五月婷婷| 人人操人人摸人人看人人干| 91色综合| 亚洲开心网| 97在线资源| 男人的天堂2018东京热啪啪啪| 性爱免费视频成人| 99久久久久久亚洲精品不卡| 超碰地址久久| 免费男人的天堂| 懂色AV中文| 色性欧美| 超碰人人超在线观看| 乱伦熟妇一区二区| 97精品在线视频| 欧美激情黑人| 欧美A√综合网 | 最新啪啪视频| 操逼不卡中文字幕| 中文字幕日韩电影人妻| 日产操逼| 日韩无码极品| 97国产超碰| 日韩一性一交一A片俄罗斯| 亚洲三级。日韩三级| 偷拍片久久| 爽爽爽免费视频| 国产亚洲 中文欧美久久| www网站黄| 国产精品自在自拍视频| 国产av又色又爽又黄| 精品人妻免费观看| 9丨亚洲一区二区在线| 神马九九| 久久 国产 无码| 精品九九九| 啊啊啊在线观看| 国产青一二三| www.婷婷| 激情开心五月天| 久久久婷婷婷| 果冻传媒A片麻豆熟妇人妻| 色色婷| 强奸乱伦中文字幕AV| 日韩操逼HD| 亚洲欧洲综合av在线| 国产精品久久天天干| 91久久青青草原精品| 白丝av| 日韩性爱人人爱人人操| 国产成人亚洲精品无码最新在线| 麻豆人妻精品一区二区| 99自拍视频| 久久精品一区二区三区不卡| 久久久久精| 亚洲AV乱码专区国产噜噜亚洲| 麻豆国产av网| 久久大线蕉一区| 91l欧美在线| www.男人天堂| 99热线麻豆| 麻豆AV一区二区天美传媒| 天天亚洲| 日韩性爱视频在线免费观看| 婷婷亚洲天堂| 人人摸人人干| 91在线丝袜| 男女一进一出视频久久| 人妻精品视频一区二区三区| 日产欧美电影一区二区三区| 天天看天天在线精品| 日本一区二区成人在线| 久99| 天操天操夜操夜月操月年年操| 99久久综合| 亚洲AV色图一区| 91亚洲情色| 国产精品原创巨作?v网站| 国产女人与拘做受视频免费| 97久久久| 综合网欧| 中文字幕乱妇免费视频| 十八禁视频一区二区| 美女国产一区二区久久| 亚洲精品国产AV天美传媒| 亚洲自拍青操视频| 日韩av无码网站| 国产69精品久久久久99尤物| 欧美亚洲第1页| 午夜福利合集| 91丨豆花丨熟女| 色色婷婷丁香| 狠狠亚洲| a'v在线资源| 黄片免费看黄片免费看| 久久久久久性爱免费视频| 亚洲高清无毛一区二区| 色五月大香蕉| 中文字幕av一区二区三区人妻少妇 | 日韩性爱毛片操骚逼| 激情五月激情综合网| 午夜啊啊啊| 97亚洲在线| Blackedraw视频一区二区| 日韩女优中文字幕| 久久久久久久性爱| 岛国精品视频在线观看| 一区二区视频你懂的| 欧在线一二区| 丁香激情五月| 久久香蕉国产线看观看亚洲女人 | 中文字幕日韩人妻视频| 夜夜骑日日| 亚洲Av噜噜一区二区三区妖精| 亚洲欧美综合网 | 久久97视频| 老熟妇一区二区三区…| 干b在线性社区| 亚洲天堂男人天堂网| 国产精品探花视频| 老熟女中文字幕高清| 欧亚无码视频| 91久久18禁| 20cm女自慰在线日韩欧美| 色九九九九久| 91亚洲综合在线| 岛国片在线观看视频亚洲| 午夜精品人妻二区三区| 亚洲精品无码成人久久久99| 亚洲污污网站| 青娱乐久久艹| 看看日B真人视频| 不卡一区二区日本视频| 久久久专区| 免费的黄片有限公司| 在线 亚洲 网爆 自拍| 欧美亚洲情色| 97爱欧美| 日韩av不卡在线看| 日韩精品9区| 视频国产精品未满十八禁止在线观看| 综合97亚洲| 99色热国产视频精品| 最新av在线| 亚洲成人av电影在线| 91艹| 99久久9| 欧美九九九九九| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 色官网在线| 欧美日韩色| 操人妻少妇中文| 超碰在线人人射| 欧美色图天堂网m| 中文精品一区二去| 日韩青久久| 亚洲色五月| 日本影视久久免费| 亚洲精品1区| 日韩国产中文字幕| 操碰97| 一区二区三区蜜桃成人撸久久东京热| 91强热人妻| 另类 日韩 熟女| 国产精品禁久久久精品| 麻豆天美电影一区二区| 亚洲一区二区三区不卡国产欧美| 人妖欧美一区二区| 九一亚洲国产免费| 亚洲激情在线一区二区| 成人羞羞视频国产| 天天大干大香蕉| 亚洲精品 大香蕉| 色欲Av人妻精品一区二| 亚洲欧美内射| 欧美超碰96| 亚洲天堂 视频你懂的| 黄页av| 天天操人人操骚逼网站| 激情六月天| 青娱乐欧美激情一区二区| 欧美色亚洲色| 精品人妻视频一区二区三区蜜桃视频| 97人人干人人操| 国产黄色视频久久| 色约约一区=区三区| 极品粉嫩少妇视频| 亚洲天堂男人在线| 亚洲一卡2卡3卡4卡乱码网站| 日韩无限资源| 中文字幕色AV| 日本不卡二三区| julia高潮后不停追击中出| 免费人成在线观看网站品爱网| 一本色道久久综合亚洲二区三区| 密乳AV免费观看| 国产精品极品美女视频| 久久人妻| 怡春院久久| 欧美久久婷婷| 18一区二区三区| 日韩乱插| 岛国片国产成人亚洲播放| 成人线上超碰| 亚洲深夜福利| 久9爱精品| 高潮综合网| 日本伦理一区二区| 992这里有精品| 黄片不用下载在线观看| 性在久久久久久| 国产JDAV无码视频在线观看| 国产v亚洲v日韩v欧美v片另类| 亚洲影视第一页| 亚欧美综合网。| 国产乱婷婷精品二区三区| 婷婷五月天av| 五月婷婷久久综合| 激情综合五月丁香| 午夜精品视频777| 在线无码操| 91社操逼| 东京热男人的天堂精品| 欧美一区二区三区另类精品| 中文精品一区二去| 国产精品熟女九色九色蜜臀| 天天干天天燥| 免费人成在线观看网站品爱网| 日本黄大片在线观看视频| 亚洲熟女综合网| 欧美高清色| 亚洲激情视频| 小说区 图片区色 综合区| 百度百度日本操逼| 国产精品美女久久久久久网站| 久久9久| 91人妻人人澡人人爽人人精品| 国产区在线| 密臀在线一区尤物| 97在线视频免费看| 黄片免费日韩| 一区不卡在线观看av| 黄片视频观看| 超碰在线香蕉| 26uuu国产免费观看| 操逼逼无码| 色玖玖| 另类老少妇| 91 综合网| 亚洲精品久久久久毛片A片拉屎 | 黄页网站成人免费| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 黄色网址久久精品欧美喷水| 97免费在线视频在线观看| 嗯嗯啊啊啊好舒服| 久久日本熟女精品一区| 天天综合网亚洲综合网| 丝袜美腿av女优在线| 日本韩国国产精品一区| 999亚洲国产视频| 国产综合操逼高清| 美女超碰978| 天天综合香 ld视频| 嗯嗯嗯啊啊啊干死我吧| 精品人妻一区二区三区视频在线| 热99这里有精品综合久久| ji熟女.com| 韩国黄色片精品久久久| 看黑人AV不卡| 久久久精品一区二区| 丰满人妻一区二区三区免费 | 五月天婷精品激情| 国产女人高潮视频| 玖玖爱一区在线| 欧美色91| 国产精品毛片?v一区二区三区 | 欧美精品1区2区3区| 成人影 天天操 亚洲| 精品九九九九九九九九九| 久久精品国产97欧美精品亚洲 | 国产日韩在线播放av| 国产免费一区在线观看| 91网亚洲| 天天干人人乐| 欧美专区日本专区| 日本三级日本三级三级人妇四虎| 欧美激情黑人| 欧美一区二区一级岛国大片| 亚洲日韩成人性爱视频| 综合97| 免费的很黄很污的全部视频| 91痴汉| 精品97久久综合| 秋霞男人网| 97天天日| 日亚韩精品视频二区三| 国产白嫩精品久久| 欧美综合色,www| 欧美日韩色综合网| 色综合中文字幕不卡| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 日韩电影在线观看网址| 3P丝袜熟女 色综合| 日韩一999精品| 免费αV在线视频| 97爱亚洲| 日日摸日日碰夜夜爽视频| 日本大香蕉综合网红本杳社区| 人人操我人人干| 久久午夜鲁丝片| 五月婷婷综合在线| 日日骚av| 人、人、摸,人、人、草| 日本超碰97日韩精品人妻| 国产黄色剧情影片麻豆免费播放| 日韩啪啪啪啪啪| 天天操妹子| 九九香蕉网| 免费男人的天堂| 激情干在线| 啊啊啊啊啊啊啊在线| 国产黄色在线播放观看| 色哟哟-国产专区| 97超碰人人操人人操| 中文字幕二区日韩天堂 | 五月婷婷六月丁香| 人妻91少妇| 九九综合色| 老熟乱一区二区三区四区| 国产精品免费视频不卡| 精品久久久一本一道| 啊啊啊在线看| 国产欧美一级在线观看| 国产成人免费观看在线视频 | 99热官网| 成人午夜小视频手机在线看| 欧美懂色综合网| 五月丁香婷婷色| 清纯唯美激情| 96AV精品| 午夜.DJ高清在线观看免费7| 丰满精品人妻少妇久久字幕| 日韩国产欧美伦理在线| 青青草久久| 国产高清精品福利| 嗯嗯不要 视频| 欧美 亚洲 制服 精品| 立川理惠被中出无码| 欧美日韩亚洲天堂网| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 青青草日本中文字幕| 亚洲熟女性高潮久久久| 青青草原成人| 男人天堂婷婷五月天校园春色| 欧美第一页| 91夜夜蜜桃臀1区2区3区| 中国农村熟妇毛片视频| 日本天天操| 乱伦3P视频| 五月天丁香欧洲日韩| 伊人aaa| 男同专区一区二区三区在线| 亚洲无码太久| 五月丁香| 中文字幕人乱码中文字的预防方法 | 日韩一级久久毛片| 欧美黄色大香蕉一区二区| 亚洲。日韩。欧美| 日本久久久久久久久久| 亚洲 欧美 制服 另类 自拍| 日本片日本片祼观看网站在线看中文版网页在线看 | 91欧美少妇| 亚洲欧洲自拍图片专区满春格| 极品白嫩美女白浆成人福利在线看| 久久久久中出| 99精品九九九九九九| 国产精品爽爽v| 婷婷成人久久久精品| 亚洲se电影| 日韩中文字幕国产| 毛片视频白嫩| 天天欧美| 人、人、摸,人、人、草| 免费9 1久久| 外站AV在线| 中文字幕av乱伦| 99黄页网站| 襙一襙| 91视频国品一二三区| 色偷偷超碰亚洲| 国产精品网址| 亚洲欧美天堂在线| 好吊色综合| www.99在线| 骚货 中文字幕 av| 五月丁香拍拍激情综合三级| 中文字幕制服欧美久久一区| 97综合在线| 色婷婷狠狠| 人妻喷水| 秋霞曰韩R级| 精品中文日韩字幕视频| 亚欧免费| 欧洲精品一区二区三区| 亚洲人体视频在线观看| 久久女人视频| 午夜性生活av免费在线看| 丁香五月天视频| 婷婷性网| 大香蕉久久| 日韩99999| 亚洲综合激情五月久久| 蜜臀AV一区二区三区| 无码少妇精品一区二区60岁老人| 999熟女精品| 日本操逼视频导航| 曰韩少妇无码| 亚洲av影院在线观看| 日日日色色色色色| 黄色一区二区秘书性感| 日日日大屁股骚女人精品| 大香蕉久| 中出人妻中文字幕91在线| 无码免费精品高清| 丝袜天堂网| 丁香五月激情综合国产| 人妻熟女一区二区三区视频| 五月天激情四射| 国产综合久久久麻桃个| 久久精品人体| 强奸抽插av| 目产99999久久999| av午夜影院在线播放| 加勒比性爱成人在线| 天天干天天狼在线视频| 欧洲亚洲人妻无码高清久久三区四区| 丁香六月激情综合| 97色97干| 色欲人妻一区二区在线| 日韩欧美国产一区二区三区四区| 91青青在线视频| 丁香婷婷久久 | 99精品人人爽| 中国探花熟女| 91熟女丨91老女人| 亚洲熟女乱色| 国产亚洲女v在线观看| 久久久9 9 9精品| 精品久久99| 一二三区操逼国产91| 久久久111| 精品一区二区成人动漫| 亚洲综合97| 天美欧美国产| 乱色视频中文字幕| 深夜福利黄片| 欧亚揄拍偷拍精品视频| 天天爽夜夜操| 伊人专区一区二区三区| 日韩国产九九精品一区二区三区毛片 | 五月综合视频| 婷婷av在线中文字幕| 97欧美久久久久久久| 婷婷六月天| 久久久精品中文字幕爱豆| 日本不卡一区二区三区| 欧美国产日韩清纯唯美| 亚洲男人综合| 久久久久久人| 亚洲天堂自拍| 激情五月天色色网| 日韩成人精品| 亚洲资源一区| 一区二区国产视频在线观看| 色五月亚洲| 亚洲国产91精品一区二区久久| 玖玖资源视频一区二区三区| 男人的天堂.com| 插日本熟女视频| 17c嫩草51久久91嫩草| 97草草| 天天综合影院91| 九九色热| 乱论91| 国产女大学生AV| 后入合集| 天天插夜夜爽| julia在线观看久久| 户外裸露刺激视频第一区| 色牛aV| 秘书高跟黑色丝袜国产91在线| 中文字幕在线观看网页| 久久草大香蕉| 在线观看色视频| 黄色无码高清黄色无码网站| 九九九偷拍| 精品二999| 精品91摸| 熟妇熟女视频一区二区三区| 在线综合色| 操逼视频国产无套| 久久久久少妇| 午夜传煤十二区精品| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 人妻激情视频| 色偷偷男人的天堂麻豆| 欧美,日韩,中文,另类| 亚洲男人综合| 美女97超碰| 乱伦熟女专区| 精品亚洲俞拍视频一区| 国产 亚洲 丝袜 制服| 午夜偷拍久久熟女| 国产真实子伦对白| 极品肉射| 九九九九热只有精品| 欧美综合777| 亚洲诱惑| 亚洲一区二区 麻豆传媒| 一区二区三区男女操逼黄色小电影| 在线另类| 婷婷色色五月| 亚洲熟女中文字幕在线| 亚洲成人福利电影免费| 久久av一级av少妇av高潮| 操逼无码操逼| 人人操 欧美| 国产综合日韩伦理| 国产午夜在线观看| 国产成人久久精品蜜臀| 一二三区精品视频| 天天久久久久久| 亚洲天在线| 欧美日韩精品久久久久东北老熟妇| 九九九热精品| 韩日自拍| 欧美线天码中字| 蜜桃午夜视频一区二区| 啊啊啊啊,啊啊好多水| 亚洲欧洲激情| 自拍啪啪视频| 亚洲一区二区av| 欧美美女视频| 91人妻在线视频| 97精品免费| 97超碰人人操人人操| 亚洲无码精品AV久久久| 欧美性爱综合,免费| 国产成久久综合片| 日韩美女啪啪一区| 家庭乱伦网站国产| 自偷自拍的亚洲视频| 亚洲九区| 久操99| 欧色综合| 操淫穴亚洲五月丁香| 亚洲综合色在线| 97伊人| 人人爱人人乐人人操| 在线有码中文字幕| 国产欧美日韩精品中文| 91精品黄在线观看| 超碰79人人乐| 人人澡综合涩| 99这里都是精品| 亚洲高清欧美总合| 久久性爱视频免费看| 熟妇的味道HD中文字幕| 国产女人91精品嗷嗷嗷嗷| 伊人五月天| 97超碰色屌| 九九九九97| 精品久9| 2019精品国产无码成人| 一区二区三区四区免费视频| 色丁香五月婷婷| 黑人中出21连凳花野真衣| 国产亚洲日本| 四虎影视精品| 一区二区三区亚洲| 久久露脸国产老熟女| 综合国产97| 色五月激情AV在线| 亚洲色交| 国产亚洲精品农村妇女| 首页亚洲国产高跟丝袜诱惑视频| 精品一区96| 99re在线视频这里只有精品| 青草精品视频-日本久久久久网站| 強姦亂倫a| 婷婷久久网| 少妇500双飞99| 99久久久| 午夜.DJ高清在线观看免费7| 色情婷婷| 亚洲欧美日韩电影网站一区 | 色诱中文字幕| 精品视频一区二区| 亚洲欧洲日本精品中文a∨| 蜜乳性色无码专日粉嫩骚逼AV| 日本三级久| 色眯眯av| 香港澳门日本三级网站| 粉嫩在线一区二区懂色| 亚洲天堂另类小说男人| 超碰 欧美| 久久久99免费| 五月香婷婷| 久久久久921| 国产综合色精品在线观看| 国模少妇一区二区三区| 女同性恋一区二区三区精品视频| 人妖欧美一区二区| 秋霞成人做爱| 91色女| 一区二区三区四区五区久久久久久| 无遮挡男女激烈动态图| 99综合网| 亚洲综合射| A片A5445444| 97人人干| 黄站在线免费观看| 国产又色又粗又黄又爽| 久久精品国产精品亚洲艾通辽熟妇| 国产精品不卡一区二区三区| 久久久新亚洲AV| 天天插天天射| 久久华人网| 中国一级特黄大片护士| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 国产激情久久久| baiduhicn.com。| 中文AV制服乱伦| caorenqi shipin| 欧美韩日精品99综合| 国产Aα| av亚洲天堂资源网站| 欧美91在线| 色色激情五月天| 久久中文字幕女同性恋一区| 又大又长又粗又爽又黄| 欧美亚洲丝袜美女电影| 激情文学88| 国内91熟女人妻丝袜天天精品视频在线| 无码精品啪啪啪一区二区三区三州| 色天使亚洲综合在线观看| 欧美狠狠弄| 久久精品国产精品一区| 性欧美另类高清| 亚洲se91| 久久久久成人蜜桃精品| 91制服丝袜| 五月色综合| 麻豆一区二区三区在线看| 中文字幕日本久久| 欧美A√综合网| 婷婷亚洲综合| 肏逼福利网站| 不卡九肏| 亚洲国产成人精品无码专区| 超碰在97| 99色在线观看| 91性情| 欧美高潮在线| 国产福利精品最新在线 | 好色美女九七第一页| 欧美变态激情网| 亚洲五码一区二区三区| 国产在线激情| 大香蕉啪啪啪| 四虎影视精品| 91国产精品熟女| 久久精品国产精品一区| 亚洲97P| 国产美女销魂在线观看不卡| 中文字幕综合人妻| 国产av强奸美女| 久久久久斤小| JULIA一区二区三区在线播放| 中文字幕精品亚洲熟女| 五月丁香激情综合| 四虎精品一区二区| 大香蕉伊人网WWWn0n| 欧美爆乳精品一区二区| 蜜桃久久久久久久久久久久| 香蕉人人操tv| 亚洲色电影在线| 午夜啪啪片| 欧美爆操91| 东京热双插| 色婷婷在线视频精品导航| 五月婷婷丁香六月丁香| 中文字幕一区二区三四五区日日骚| 国产色精品午夜大片| 亚洲欧洲日韩中文字幕一区| 大稥蕉免费视频这里只有精品| a片久久久久久久久久久久 | 亚熟hd视频在线| 人人做人人妻人人夜视频| 婷婷午夜清品久久久久久久性色视频观| 乱精品一区字幕二区| 尤物网站91| 亚洲欧洲无码一区夜| 久久99精品视频| 秋霞色色影院| 91无摭挡| 综合网欧美在线| 欧美偷拍区| 久伊人网78| 97这里都是精品| 日韩性爱电影一区 | 国产 日韩 欧美一区| 久久久久9| 920日本午夜免费| 欧美性爱第一区| 久久精品国产亚洲粉嫩| 九九热超碰97亚洲最新香蕉 | 亚洲操人| 亚洲毛片基地专区| 大香蕉之青青草原| 一区二区三区国产在线播放| 久久精品老司| 免费精品99| 人人操人人干网页| 伊人久久AV诱惑悠悠| 成人一区二区三区四区| 四虎AV在线观看| 日本丝袜人妻内射| 清纯唯美亚洲| 丰满欧美放荡少妇在线| 超碰97资源中文字幕| 日韩精品中文字幕二区| 日韩无码精品综合久久| 久久久999国产精品| 91在线丝袜视频| 最新欧美色网| 久久久久久AⅤ无码免费肉站 | 四虎AV在线观看| 国产aⅴ无码片毛片一级网站| 一区二区三| 噜噜噜噜天天狠狠| 欧美日韩大陆黑人少妇99| 麻豆久久视频在线地址| 国语av最新自产拍在线观看| a片在线播放| 97操b| 龙兴卡官方查询| 91日日| 欧美三级不卡| 激情五月天色色网| 操逼国产免费| 黄色片A级一区二区三区| v91av| 亚洲欧美内射| 五月开心久久AV官网| 麻豆av一区二区三区| 夂久色| 亚洲aV无码成人在线观看| 国产精品 久久久精品一牛| 91操熟女| 97免费视频在线| 中文字幕免费在线观看| 国产99999久久精品| 自拍欧美| 久久av色| 91丨国产丨白浆| 天天色综合图片| 久久久97| 日韩999| 中国国国产一级特黄毛片| 中文字幕奈奈美被公侵犯| 男人女人18禁片免费看网站| 嗯嗯啊啊操我| 久久国产乱子伦精品免费女,网站| 人妻蜜桃臀| 国产人人干| 长长久久免费视频| 免费精品无码一级毛片牛牛影视| 天天射天天操天天干天天吃2018 | 久久国产三区| 六月丁香五月婷婷| 精品国产精品一区二区| 美女被艹尤物视频| 91丨熟女丨丰满熟女| 日韩一级成人毛片免费观看 | 中文字幕二区日韩天堂| 97色色视频| 色欧美天天| 男人的天堂在线有码| 精品四五区| 久久精品视频久久久| 狼人综合婷婷激情四射| 国产欧美一区二区| 蜜桃中文字日产乱幕4区| 日韩AV色图| 啊啊啊啊啊啊好湿好爽视频| 躁躁日曰躁2020| 国产二区三区粉嫩在线| 性性久久| 亚洲人精品午夜不卡| 校园春色美腿丝袜| 五月天久久人妻| 精品国产乱码久久久久久网站入口| 天天日天天干少妇日| 久久久九九九| 久久欲| 国产专区第一页| 五月天玖玖资源站| 九九av| sss视频华人在线| 大吊色| 蜜桃丰满熟妇av无码区不卡| 91在线国产后入风骚翘臀美女素人| 四虎影视国产精品| 天天综合官网| 2019精品国产无码成人| 天天搞在线综合网| 国产成人无码网站在线视频| 97操碰| 97超碰天天爱天天爱| 91高潮喷水美女| 国产白丝网站| 国产午夜在线观看| 一区二区三区黄片免费观看| 美女黄频a美女大全免费皮| 人人操AV| 久久综合精品一区二区三区| 欧美亚洲宗合色性图| 男人天堂毛片| 色波多| 国产精品久久久久久久毛片1| 97碰| 思思热国产高清| 色欧洲| 欧美啪啪色吧在线| 国产激情在线| 97碰碰色| 久久东京热久久| 亚洲欧美首页| 亚洲av青草久久一区二区| 丝袜足交视频| 国产精品点击进入在线影院高清| 在线岛国新天堂8| 日韩 国产 欧美自拍| 日日AV加勒比| 色五月激情AV在线| 日本色日夜干| 激情无码日韩| 96精品在线| 人妻内射一区二区在线视频| 国产激情在线| 樱花蜜乳av| 五月婷婷丁香六月| 欧美青青视频| 麻豆视频一区二区| 激情网色| 青青草原人妻| 日韩av电影网站| 久久AV无码AV| 国产热RE99久久6国产精品首| 日韩中文字幕熟妇人妻| 欧美另类天堂| 中文字幕精品一区欧美| 99色综合| 狠狠干妹子| 国产日韩精品suv| 啊视频在线| 亚av顶级裸体一区二区三区四区五区 | 96免费视频在线| 天天综合青苹果| 探花在线免费观看视频国产一区| 亚洲国产精品乱码在线观看| 国产日韩中文字幕欧美| 91一区二区三区蜜桃| 五月天啪啪| 俞拍自拍| 欧美日韩另类在线播放| 大香蕉碰碰| 超碰97综合网| 天天色天天干天天射| 97国产色综合| 99999久久精| 国产亚洲禁久一区二区| 99re8免费高清在线| 欧美资源| 99热日本| 五月天人妻综合| 亚州操逼图| 午夜精品久久久久久久99热影院| 亚洲高清自拍| 国产97/欧美| 男人天堂站| 欧美亚洲今日在线| 国产精选三级在线观看| 美日韩一二三区| 欧美不卡在线一区二区| 欧美嫩性色| 天天综合色图| 超碰人人在线| 啊啊啊 在线| 欧美成人一区二区三区在线播放| 91爱看| 搞中出久久| 青青草白白色| 人人操人人操人人人操| 97超碰色屌|