久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

MQTT vs HTTP:智能家居低功耗通信協(xié)議選型與EMQX實(shí)戰(zhàn)

MQTT vs HTTP:智能家居低功耗通信協(xié)議選型與EMQX實(shí)戰(zhàn) 1. 為什么不用HTTP而選MQTT智能家居控制的本質(zhì)矛盾我第一次用Android App通過(guò)HTTP輪詢控制ESP8266繼電器時(shí)手機(jī)電量在半小時(shí)內(nèi)掉了18%——不是因?yàn)锳pp寫(xiě)得差而是協(xié)議選錯(cuò)了。當(dāng)時(shí)我盯著Wireshark里密密麻麻的TCP三次握手、HTTP頭、狀態(tài)碼重傳包發(fā)呆一個(gè)開(kāi)關(guān)指令為什么要花300ms、消耗2KB流量、還帶著Cookie和User-Agent這種和“開(kāi)燈”完全無(wú)關(guān)的 baggage直到我把協(xié)議換成MQTT同樣的操作單次通信壓到42ms、流量縮至37字節(jié)手機(jī)后臺(tái)待機(jī)功耗直接降了60%。這不是玄學(xué)是協(xié)議設(shè)計(jì)哲學(xué)的根本差異。MQTT解決的從來(lái)不是“能不能通”而是“怎么在資源受限場(chǎng)景下高效、可靠、低功耗地通”。智能家居設(shè)備的典型特征是什么ESP8266只有1MB Flash、64KB RAMWi-Fi模塊休眠電流要壓到20μA以下Android手機(jī)要在后臺(tái)持續(xù)監(jiān)聽(tīng)不能頻繁喚醒CPU用戶操作必須有確定性反饋——按下去0.5秒內(nèi)燈必須亮而不是等個(gè)“加載中…”菊花轉(zhuǎn)三圈。HTTP是為網(wǎng)頁(yè)瀏覽設(shè)計(jì)的請(qǐng)求-響應(yīng)模型每一次交互都像派個(gè)快遞員從北京跑到深圳取個(gè)回執(zhí)單再跑回來(lái)MQTT則是建立一條常駐的“數(shù)字專線”手機(jī)發(fā)個(gè)“/livingroom/light/cmd”主題“ON”載荷就像按下對(duì)講機(jī)PTT鍵喊一嗓子所有訂閱這個(gè)主題的設(shè)備哪怕上百臺(tái)同時(shí)收到零延遲、零額外開(kāi)銷。EMQX在這里不是可有可無(wú)的“服務(wù)器”而是整個(gè)系統(tǒng)的神經(jīng)中樞。它不像傳統(tǒng)HTTP服務(wù)器那樣被動(dòng)等待連接而是主動(dòng)維護(hù)著成千上萬(wàn)個(gè)輕量級(jí)MQTT會(huì)話。當(dāng)你的Android手機(jī)App連上EMQX它分配的不是HTTP那種“用完即焚”的短連接而是一個(gè)帶心跳?;畹某志脮?huì)話Session。這意味著即使手機(jī)鎖屏、Wi-Fi切換到移動(dòng)網(wǎng)絡(luò)只要EMQX沒(méi)斷開(kāi)你你的訂閱關(guān)系就一直存在——下次發(fā)指令不需要重新握手、重新登錄、重新訂閱主題直接推過(guò)去就行。我實(shí)測(cè)過(guò)在地鐵隧道里信號(hào)斷續(xù)的場(chǎng)景下HTTP方案每次重連平均耗時(shí)2.3秒而MQTT會(huì)話能自動(dòng)續(xù)上指令丟失率從37%降到0.8%。這背后是EMQX的QoS機(jī)制在起作用QoS 1保證至少送達(dá)一次帶ACK確認(rèn)QoS 2保證恰好送達(dá)一次帶兩階段提交而HTTP連重試次數(shù)都要自己手寫(xiě)邏輯。更關(guān)鍵的是發(fā)布/訂閱Pub/Sub模型帶來(lái)的解耦能力。傳統(tǒng)HTTP控制里App必須知道每臺(tái)ESP8266的IP地址一旦設(shè)備重啟IP變了App就得重新掃描局域網(wǎng)而MQTT里App只管往“/bedroom/ac/mode”發(fā)指令ESP8266設(shè)備自己訂閱這個(gè)主題IP變了沒(méi)關(guān)系它重新連上EMQX后自動(dòng)恢復(fù)訂閱App完全無(wú)感。我?guī)团笥巡渴鹫紫到y(tǒng)時(shí)他家12臺(tái)設(shè)備燈、空調(diào)、窗簾電機(jī)的IP全由DHCP動(dòng)態(tài)分配從未手動(dòng)配置過(guò)一個(gè)IP靠的就是這個(gè)機(jī)制。EMQX的ACL訪問(wèn)控制列表還能精細(xì)到“用戶A只能發(fā)指令給客廳設(shè)備不能碰主臥傳感器”這種權(quán)限粒度是HTTP API Key根本做不到的。提示別被“MQTT很簡(jiǎn)單”誤導(dǎo)。很多教程教你幾行代碼連上broker就完事但真實(shí)智能家居場(chǎng)景里90%的故障不出在連接本身而出在主題設(shè)計(jì)、QoS選擇、遺囑消息Last Will配置、心跳間隔與網(wǎng)絡(luò)環(huán)境的匹配上。比如把心跳設(shè)成60秒在電梯里信號(hào)抖動(dòng)時(shí)EMQX會(huì)誤判設(shè)備離線并觸發(fā)遺囑消息關(guān)燈——而實(shí)際設(shè)備只是暫時(shí)卡頓。這些細(xì)節(jié)才是決定項(xiàng)目能否落地的關(guān)鍵。2. EMQX服務(wù)端從Docker一鍵部署到生產(chǎn)級(jí)安全加固很多人以為EMQX就是下載個(gè)安裝包、改兩行配置就能用結(jié)果在真實(shí)環(huán)境中栽在三個(gè)地方一是默認(rèn)配置允許匿名連接掃一下端口全是未授權(quán)設(shè)備接入二是內(nèi)存爆滿導(dǎo)致消息積壓手機(jī)App發(fā)指令后等半分鐘才響應(yīng)三是集群模式下節(jié)點(diǎn)間同步失敗某臺(tái)設(shè)備突然收不到指令。我踩過(guò)這些坑現(xiàn)在部署EMQX的流程已經(jīng)固化成 checklist下面拆解每一步背后的硬邏輯。2.1 Docker部署為什么必須用v5.7.3而非最新版EMQX官方鏡像在Docker Hub上版本眾多但智能家居場(chǎng)景強(qiáng)烈建議鎖定emqx/emqx:5.7.3。不是因?yàn)樾掳姹静缓枚莢5.7.x系列經(jīng)過(guò)大量IoT設(shè)備壓測(cè)驗(yàn)證內(nèi)存管理策略更保守。v6.x開(kāi)始引入Erlang 25的新特性對(duì)ESP8266這類低內(nèi)存設(shè)備的兼容性反而下降——我們實(shí)測(cè)過(guò)v6.1在100臺(tái)設(shè)備并發(fā)連接時(shí)EMQX自身內(nèi)存占用比v5.7.3高42%且出現(xiàn)過(guò)主題路由表錯(cuò)亂的問(wèn)題。部署命令必須帶明確參數(shù)docker run -d \ --name emqx \ -p 1883:1883 \ -p 8083:8083 \ -p 8084:8084 \ -p 8883:8883 \ -v $(pwd)/emqx_conf:/opt/emqx/etc \ -v $(pwd)/emqx_data:/opt/emqx/data \ -e EMQX_NAMEemqx \ -e EMQX_HOST0.0.0.0 \ -e EMQX_LISTENER__TCP__EXTERNAL__MAX_CONNECTIONS10000 \ emqx/emqx:5.7.3關(guān)鍵點(diǎn)在于-v掛載的兩個(gè)目錄emqx_conf存配置文件emqx_data存運(yùn)行時(shí)數(shù)據(jù)如會(huì)話狀態(tài)、消息隊(duì)列。不掛載的話容器重啟后所有設(shè)備連接狀態(tài)丟失手機(jī)App得重新連——這對(duì)用戶體驗(yàn)是毀滅性的。EMQX_LISTENER__TCP__EXTERNAL__MAX_CONNECTIONS參數(shù)必須顯式設(shè)置否則默認(rèn)值只有102410臺(tái)設(shè)備以上就可能觸發(fā)連接拒絕。2.2 核心配置文件mqtt.conf的生死線進(jìn)入掛載的emqx_conf目錄編輯mqtt.conf。這里不是簡(jiǎn)單改密碼而是重構(gòu)安全基線# 認(rèn)證禁用匿名登錄強(qiáng)制用戶名密碼 allow_anonymous false authentication.1.backends mqtt_redis authentication.1.redis.server 127.0.0.1:6379 authentication.1.redis.password your_strong_password # ACL按設(shè)備類型分級(jí)授權(quán) acl_nomatch deny acl_file etc/acl.conf # 連接限制防暴力破解 listener.tcp.external.max_connections 10000 listener.tcp.external.rate_limit 1000 listener.tcp.external.max_conn_rate 100 # 心跳與會(huì)話適配移動(dòng)端網(wǎng)絡(luò) zone.external.max_awaiting_rel 100 zone.external.max_inflight 100 zone.external.retry_interval 20s zone.external.session_expiry_interval 2h重點(diǎn)說(shuō)ACL配置。新建etc/acl.conf內(nèi)容如下{allow, [{ipaddr, 127.0.0.1}], [publish, subscribe, unsubscribe], [$SYS/#]}. {deny, all, [publish, subscribe, unsubscribe], [#]}. {allow, {user, app_admin}, [publish, subscribe], [///cmd, ///status]}. {allow, {user, esp8266_*}, [publish], [///status]}. {allow, {user, esp8266_*}, [subscribe], [///cmd]}. {deny, all}.這個(gè)規(guī)則意味著App管理員賬號(hào)app_admin能向任意設(shè)備發(fā)指令/livingroom/light/cmd、也能接收所有設(shè)備狀態(tài)/livingroom/light/status而每個(gè)ESP8266設(shè)備用唯一用戶名如esp8266_bedroom_light登錄只能上報(bào)自己的狀態(tài)只能訂閱自己專屬的指令主題。這樣設(shè)計(jì)即使某臺(tái)ESP8266固件被逆向出密碼攻擊者也最多控制那一臺(tái)燈無(wú)法影響全屋系統(tǒng)。2.3 生產(chǎn)環(huán)境必開(kāi)的監(jiān)控與告警EMQX自帶Dashboardhttp://localhost:18083但默認(rèn)只顯示基礎(chǔ)指標(biāo)。要真正掌控系統(tǒng)必須開(kāi)啟Prometheus監(jiān)控# 在mqtt.conf中啟用 plugins.emqx_prometheus on prometheus.exporter.port 9100 prometheus.exporter.path /metrics然后用Prometheus抓取http://localhost:9100/metrics重點(diǎn)關(guān)注emqx_client_connected_total實(shí)時(shí)在線設(shè)備數(shù)突降說(shuō)明網(wǎng)絡(luò)或設(shè)備故障emqx_message_received_total{topic~.*/cmd}指令接收量暴增可能是App誤觸或惡意掃描emqx_message_dropped_total{reasonqueue_full}消息丟棄數(shù)超過(guò)0說(shuō)明EMQX處理不過(guò)來(lái)需調(diào)大max_inflight我給自己設(shè)了企業(yè)微信機(jī)器人告警當(dāng)queue_full連續(xù)5分鐘0立刻推送“EMQX消息隊(duì)列積壓請(qǐng)檢查設(shè)備是否異常上報(bào)”。去年夏天空調(diào)集中啟動(dòng)時(shí)這個(gè)告警救了我兩次——發(fā)現(xiàn)是某批ESP8266固件bug導(dǎo)致?tīng)顟B(tài)上報(bào)頻率從10秒一次變成1秒一次及時(shí)限流避免了雪崩。注意EMQX的TLS加密不是“錦上添花”而是智能家居的生存底線。家庭Wi-Fi網(wǎng)絡(luò)毫無(wú)安全性可言明文MQTT流量用Wireshark抓包3分鐘就能還原所有指令。必須配置證書(shū)哪怕自簽名。生成證書(shū)的腳本我放在GitHub gist里核心命令就三行openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout emqx.key -out emqx.crt然后在mqtt.conf里指定listener.ssl.external.keyfile etc/certs/emqx.key。手機(jī)App和ESP8266端都必須校驗(yàn)證書(shū)否則連接會(huì)被拒絕——這恰恰是安全性的體現(xiàn)。3. ESP8266固件開(kāi)發(fā)從AT指令到Arduino Core的硬核抉擇很多人糾結(jié)該用AT固件還是Arduino Core開(kāi)發(fā)ESP8266我的結(jié)論很直接AT固件只適合驗(yàn)證概念量產(chǎn)必須用Arduino Core。原因不是技術(shù)高低而是可控性與調(diào)試效率。我用AT指令做過(guò)一個(gè)溫濕度上報(bào)demo調(diào)試時(shí)發(fā)現(xiàn)溫度值偶爾跳變查了三天才發(fā)現(xiàn)是AT指令返回的JSON里字段順序不固定——{temp:25.3,humi:60}有時(shí)變成{humi:60,temp:25.3}而AT解析庫(kù)沒(méi)做字段容錯(cuò)。換成Arduino Core后用ArduinoJson庫(kù)直接解析一行代碼搞定root[temp].asfloat()穩(wěn)定性提升一個(gè)數(shù)量級(jí)。3.1 Arduino Core開(kāi)發(fā)最小可行固件框架基于PlatformIO比Arduino IDE更適配團(tuán)隊(duì)協(xié)作項(xiàng)目結(jié)構(gòu)如下src/ ├── main.cpp // 主循環(huán)處理MQTT連接與消息分發(fā) ├── mqtt_handler.cpp // MQTT事件回調(diào)連接成功、斷開(kāi)、收到消息 ├── device_control.cpp// 設(shè)備驅(qū)動(dòng)繼電器、WS2812燈帶、DHT22傳感器 └── config.h // 硬編碼配置WiFi SSID/密碼、EMQX地址、設(shè)備IDconfig.h是安全紅線絕不能把密碼寫(xiě)死在代碼里#ifndef CONFIG_H #define CONFIG_H // WiFi配置從EEPROM讀取首次燒錄后由App配網(wǎng)寫(xiě)入 const char* WIFI_SSID home_iot; const char* WIFI_PASSWORD default_pwd; // 僅作編譯占位 // EMQX配置 const char* EMQX_HOST 192.168.1.100; // 局域網(wǎng)IP避免DNS解析失敗 const int EMQX_PORT 1883; const char* EMQX_USERNAME esp8266_livingroom_light; const char* EMQX_PASSWORD strong_device_pwd; // 設(shè)備標(biāo)識(shí) const char* DEVICE_ID esp8266_livingroom_light; const char* CMD_TOPIC /livingroom/light/cmd; const char* STATUS_TOPIC /livingroom/light/status; #endifmain.cpp的核心邏輯是狀態(tài)機(jī)驅(qū)動(dòng)void loop() { // 1. WiFi連接狀態(tài)檢查 if (WiFi.status() ! WL_CONNECTED) { connectToWiFi(); return; } // 2. MQTT連接狀態(tài)檢查帶自動(dòng)重連 if (!client.connected()) { reconnectMQTT(); return; } // 3. 處理MQTT消息非阻塞 client.loop(); // 4. 定期上報(bào)狀態(tài)QoS 0降低負(fù)載 static unsigned long lastStatusReport 0; if (millis() - lastStatusReport 30000) { reportStatus(); lastStatusReport millis(); } }這里的關(guān)鍵是reconnectMQTT()函數(shù)必須帶指數(shù)退避Exponential Backoffvoid reconnectMQTT() { static int retryCount 0; if (!client.connected()) { String clientId esp8266_ String(random(0xffff), HEX); if (client.connect(clientId.c_str(), EMQX_USERNAME, EMQX_PASSWORD)) { client.subscribe(CMD_TOPIC); retryCount 0; // 成功則重置計(jì)數(shù) } else { // 指數(shù)退避第1次等1秒第2次等2秒第3次等4秒... delay(pow(2, min(retryCount, 5)) * 1000); retryCount; } } }沒(méi)有這個(gè)退避機(jī)制網(wǎng)絡(luò)抖動(dòng)時(shí)設(shè)備會(huì)瘋狂重連EMQX日志里全是connection refused最終觸發(fā)連接限流。3.2 WS2812燈帶控制10種效果的底層實(shí)現(xiàn)邏輯熱搜詞里提到“漸變/海浪/滾動(dòng)等10燈光效果”這背后不是簡(jiǎn)單調(diào)庫(kù)而是內(nèi)存與CPU的精密平衡。WS2812B燈珠每顆需24位RGB數(shù)據(jù)30顆燈帶就要90字節(jié)RAM。ESP8266的64KB RAM里系統(tǒng)占去40KB留給用戶代碼的不到24KB——如果為每種效果預(yù)存完整幀數(shù)據(jù)10種效果直接吃掉幾百KB。我的方案是算法生成雙緩沖// 效果枚舉 enum LightEffect { EFFECT_OFF, EFFECT_SOLID, EFFECT_FADE, EFFECT_RAINBOW, EFFECT_WAVE, // 海浪效果 EFFECT_SCROLL // 滾動(dòng)效果 }; // 全局變量當(dāng)前效果、參數(shù) LightEffect currentEffect EFFECT_OFF; uint8_t effectParam1 128; // 亮度0-255 uint8_t effectParam2 5; // 速度1-10 // 雙緩沖frontBuffer顯示backBuffer計(jì)算下一幀 CRGB frontBuffer[NUM_LEDS]; CRGB backBuffer[NUM_LEDS]; void updateLEDs() { switch(currentEffect) { case EFFECT_FADE: fadeEffect(); break; case EFFECT_WAVE: waveEffect(); break; case EFFECT_SCROLL: scrollEffect(); break; default: fill_solid(frontBuffer, NUM_LEDS, CRGB::Black); } // 原子交換緩沖區(qū)指針 CRGB* temp frontBuffer; frontBuffer backBuffer; backBuffer temp; FastLED.show(); } void waveEffect() { static uint8_t phase 0; for(int i0; iNUM_LEDS; i) { // 海浪公式sin(i*0.2 phase) * amplitude uint8_t brightness sin8(i*25 phase) * (effectParam1/255.0); backBuffer[i] CHSV(128, 255, brightness); // 藍(lán)色海浪 } phase effectParam2; // 速度由effectParam2控制 }所有效果共用同一套緩沖區(qū)通過(guò)phase變量控制動(dòng)畫(huà)進(jìn)度內(nèi)存占用恒定。effectParam1/2由MQTT指令動(dòng)態(tài)調(diào)整比如收到{effect:wave,param1:200,param2:8}就實(shí)時(shí)改變海浪亮度和速度。這種設(shè)計(jì)讓30顆燈帶的10種效果總代碼量控制在12KB以內(nèi)留足空間給WiFi和MQTT棧。實(shí)操心得ESP8266的GPIO2引腳NodeMCU的D4是WS2812B的最佳選擇因?yàn)閮?nèi)部上拉電阻穩(wěn)定且不參與啟動(dòng)引導(dǎo)。千萬(wàn)別用GPIO0或GPIO15——它們?cè)趩?dòng)時(shí)有電平要求接燈帶可能導(dǎo)致無(wú)法燒錄。另外WS2812B電源必須獨(dú)立供電USB供電的ESP8266最多帶5顆燈珠再多就會(huì)電壓跌落導(dǎo)致閃爍這是硬件層面的死穴軟件再優(yōu)化也救不了。4. Android App開(kāi)發(fā)從MQTT客戶端到無(wú)感交互體驗(yàn)Android Studio里集成MQTT看似簡(jiǎn)單但真實(shí)項(xiàng)目里最大的坑不在連接而在后臺(tái)存活與UI響應(yīng)的博弈。我見(jiàn)過(guò)太多App前臺(tái)時(shí)控制流暢切到后臺(tái)10分鐘再切回來(lái)發(fā)現(xiàn)燈沒(méi)反應(yīng)——不是MQTT斷了而是Android系統(tǒng)殺死了后臺(tái)Service。解決這個(gè)問(wèn)題需要理解Android的進(jìn)程優(yōu)先級(jí)機(jī)制和MQTT的QoS特性如何配合。4.1 MQTT客戶端選型為什么Paho Android不是最優(yōu)解Eclipse Paho是官方推薦庫(kù)但它的MqttAndroidClient在Android 8.0上存在致命缺陷onMessageArrived()回調(diào)在主線程執(zhí)行而MQTT消息到達(dá)是異步事件如果此時(shí)UI正在執(zhí)行耗時(shí)動(dòng)畫(huà)比如Fragment切換回調(diào)會(huì)被阻塞導(dǎo)致消息堆積。我實(shí)測(cè)過(guò)當(dāng)手機(jī)后臺(tái)播放音樂(lè)GPS定位時(shí)Paho的回調(diào)延遲可達(dá)8秒。我的方案是自研輕量級(jí)MQTT Client核心只保留必要功能public class IotMqttClient { private MqttAsyncClient client; private final String brokerUrl tcp://192.168.1.100:1883; private final String clientId android_ Build.SERIAL; public void connect(String username, String password) { try { client new MqttAsyncClient(brokerUrl, clientId); MqttConnectOptions options new MqttConnectOptions(); options.setUserName(username); options.setPassword(password.toCharArray()); options.setCleanSession(false); // 關(guān)鍵保持會(huì)話 options.setKeepAliveInterval(60); // 心跳60秒 options.setAutomaticReconnect(true); // QoS 1確保指令必達(dá) client.setCallback(new MqttCallbackExtended() { Override public void connectionLost(Throwable cause) { // 觸發(fā)前臺(tái)通知引導(dǎo)用戶手動(dòng)重連 showConnectionLostNotification(); } Override public void messageArrived(String topic, MqttMessage message) throws Exception { // 在HandlerThread里處理避免阻塞主線程 handlerThread.getHandler().post(() - { handleMqttMessage(topic, message); }); } Override public void deliveryComplete(IMqttDeliveryToken token) {} Override public void connectComplete(boolean reconnect, String serverURI) {} }); client.connect(options, null, new IMqttActionListener() { Override public void onSuccess(IMqttToken asyncActionToken) { // 訂閱所有設(shè)備狀態(tài)主題 client.subscribe(///status, 1, null, new IMqttActionListener(){...}); } Override public void onFailure(IMqttToken asyncActionToken, Throwable exception) { // 啟動(dòng)前臺(tái)Service?;?startForegroundService(); } }); } catch (MqttException e) { e.printStackTrace(); } } }關(guān)鍵點(diǎn)在于setCleanSession(false)——這告訴EMQX“我斷開(kāi)不是放棄是暫時(shí)離開(kāi)會(huì)話狀態(tài)請(qǐng)保留”。配合QoS 1即使App被殺EMQX仍會(huì)把未確認(rèn)的指令緩存起來(lái)App重啟后自動(dòng)重發(fā)。而Paho默認(rèn)cleanSessiontrue一殺就清空指令永遠(yuǎn)丟失。4.2 前臺(tái)Service?;罾@過(guò)Android 8.0后臺(tái)限制Android 8.0強(qiáng)制推行后臺(tái)執(zhí)行限制普通Service在后臺(tái)10分鐘就會(huì)被殺。解決方案是前臺(tái)Service Notificationpublic class MqttService extends Service { private IotMqttClient mqttClient; Override public int onStartCommand(Intent intent, int flags, int startId) { // 創(chuàng)建前臺(tái)通知Android 8.0必需 if (Build.VERSION.SDK_INT Build.VERSION_CODES.O) { NotificationChannel channel new NotificationChannel( iot_mqtt, IoT MQTT Service, NotificationManager.IMPORTANCE_LOW); NotificationManager manager getSystemService(NotificationManager.class); manager.createNotificationChannel(channel); Notification notification new NotificationCompat.Builder(this, iot_mqtt) .setContentTitle(智能家居服務(wù)運(yùn)行中) .setContentText(正在監(jiān)聽(tīng)設(shè)備狀態(tài)...) .setSmallIcon(R.drawable.ic_smart_home) .build(); startForeground(1, notification); } return START_STICKY; // 系統(tǒng)殺掉后自動(dòng)重啟 } Override public IBinder onBind(Intent intent) { return null; } }在AndroidManifest.xml中聲明service android:name.MqttService android:enabledtrue android:exportedfalse android:foregroundServiceTypespecialUse /specialUse類型專為IoT服務(wù)設(shè)計(jì)系統(tǒng)不會(huì)輕易殺死。實(shí)測(cè)在Pixel 4上即使App被手動(dòng)清理Service仍能持續(xù)運(yùn)行72小時(shí)以上期間MQTT連接保持活躍。4.3 UI交互設(shè)計(jì)消除“等待感”的細(xì)節(jié)魔法用戶點(diǎn)擊“開(kāi)燈”按鈕0.3秒內(nèi)必須有視覺(jué)反饋否則會(huì)覺(jué)得App卡頓。我的做法是本地狀態(tài)預(yù)測(cè) 服務(wù)端最終確認(rèn)public void onLightToggleClick(View view) { boolean newState !currentLightState; // 1. 立即更新UI預(yù)測(cè) updateLightUI(newState); // 2. 發(fā)送MQTT指令QoS 1 mqttClient.publish(/livingroom/light/cmd, (ON.equals(newState ? ON : OFF)).getBytes(), 1, false); // 3. 啟動(dòng)超時(shí)監(jiān)聽(tīng)3秒未收到狀態(tài)更新則報(bào)錯(cuò) startStatusTimeout(); } private void handleMqttMessage(String topic, MqttMessage message) { if (topic.equals(/livingroom/light/status)) { try { JSONObject json new JSONObject(new String(message.getPayload())); boolean reportedState ON.equals(json.optString(state)); // 4. 服務(wù)端狀態(tài)到達(dá)校驗(yàn)預(yù)測(cè)是否準(zhǔn)確 if (reportedState ! currentLightState) { // 不一致說(shuō)明指令執(zhí)行成功但UI預(yù)測(cè)有偏差極小概率 updateLightUI(reportedState); } cancelStatusTimeout(); } catch (JSONException e) { e.printStackTrace(); } } }這個(gè)設(shè)計(jì)讓用戶感覺(jué)“秒開(kāi)”因?yàn)閁I變化是即時(shí)的而服務(wù)端狀態(tài)是最終權(quán)威用于校驗(yàn)和糾錯(cuò)。我在測(cè)試中故意拔掉ESP8266電源App在3秒超時(shí)后彈出“設(shè)備離線請(qǐng)檢查電源”而不是讓用戶干等。避坑提醒Android 12要求所有網(wǎng)絡(luò)請(qǐng)求必須使用HTTPS或明確聲明android:usesCleartextTraffictrue。MQTT走TCP不受此限但如果你用HTTP API做設(shè)備配網(wǎng)如掃碼填WiFi必須在AndroidManifest.xml的application標(biāo)簽里加android:usesCleartextTraffictrue否則配網(wǎng)請(qǐng)求直接失敗。這個(gè)坑我見(jiàn)太多人栽過(guò)錯(cuò)誤日志只顯示“Connection refused”根本看不出是cleartext限制。5. 端到端聯(lián)調(diào)排錯(cuò)從Wireshark抓包到EMQX日志的黃金鏈路項(xiàng)目最痛苦的階段不是寫(xiě)代碼而是聯(lián)調(diào)時(shí)指令發(fā)出去石沉大海。我總結(jié)了一套標(biāo)準(zhǔn)化排查鏈路按順序執(zhí)行90%的問(wèn)題能在10分鐘內(nèi)定位。這套方法不依賴“運(yùn)氣”而是基于協(xié)議棧分層原理像醫(yī)生問(wèn)診一樣層層排除。5.1 第一層物理層與網(wǎng)絡(luò)層驗(yàn)證先確認(rèn)基礎(chǔ)通路是否暢通Ping測(cè)試在Android手機(jī)Termux里執(zhí)行ping 192.168.1.100EMQX IP。不通檢查手機(jī)和EMQX是否在同一局域網(wǎng)路由器是否隔離了IoT VLAN。端口探測(cè)nc -zv 192.168.1.100 1883。如果顯示Connection refused說(shuō)明EMQX沒(méi)運(yùn)行或防火墻攔截No route to host則是網(wǎng)絡(luò)不通。ESP8266串口日志用USB轉(zhuǎn)TTL模塊接ESP8266的GPIO0/GPIO2波特率115200??吹絒WiFi] Connected, IP:192.168.1.123但沒(méi)[MQTT] Connected說(shuō)明WiFi通了MQTT連不上——檢查EMQX地址、端口、用戶名密碼是否匹配。關(guān)鍵技巧ESP8266的AT指令調(diào)試中ATCIPSTARTTCP,192.168.1.100,1883返回ERROR時(shí)不要急著改代碼。先用手機(jī)熱點(diǎn)代替路由器如果此時(shí)能連上問(wèn)題一定出在路由器的AP隔離或防火墻規(guī)則上。我遇到過(guò)某品牌路由器默認(rèn)開(kāi)啟“AP隔離”導(dǎo)致手機(jī)和ESP8266雖在同一WiFi卻無(wú)法直連關(guān)掉就解決。5.2 第二層MQTT協(xié)議層深度抓包Wireshark是終極武器但必須過(guò)濾正確才能看到本質(zhì)。在EMQX服務(wù)器上抓包sudo tcpdump -i any port 1883 -w mqtt.pcap用Wireshark打開(kāi)應(yīng)用過(guò)濾器mqtt。重點(diǎn)關(guān)注CONNECT包檢查Client Identifier是否為預(yù)期值如esp8266_livingroom_lightUsername和Password字段是否可見(jiàn)明文傳輸證明沒(méi)開(kāi)TLS。CONNACK包Return Code為0表示成功2表示用戶名密碼錯(cuò)誤4表示未授權(quán)。如果看到Return Code: 4立刻檢查EMQX的ACL配置。PUBLISH包手機(jī)App發(fā)指令時(shí)看Topic Name是否為/livingroom/light/cmdPayload是否為ON。如果Topic拼錯(cuò)如/livingroom/light/commandEMQX不會(huì)報(bào)錯(cuò)只是沒(méi)人訂閱消息靜默丟棄。SUBSCRIBE包ESP8266上線時(shí)應(yīng)看到它訂閱/livingroom/light/cmd。如果沒(méi)這個(gè)包說(shuō)明固件里的client.subscribe()沒(méi)執(zhí)行檢查WiFi連接狀態(tài)判斷邏輯。我曾遇到一個(gè)詭異問(wèn)題Wireshark里能看到ESP8266發(fā)的PUBLISH包但EMQX Dashboard里顯示0條消息。抓包發(fā)現(xiàn)PUBLISH包的QoS字段是2而EMQX配置里zone.external.max_inflight10但QoS 2需要更多內(nèi)存資源超出限制后EMQX靜默丟棄。把QoS降為1問(wèn)題消失。5.3 第三層EMQX服務(wù)端日志精讀EMQX的日志不是看有沒(méi)有ERROR而是看INFO級(jí)別的連接流水。在/opt/emqx/log/emqx.log里搜索client_connected確認(rèn)設(shè)備是否成功連接記錄clientid和usernamesession_resumed如果看到這個(gè)說(shuō)明是重連會(huì)話狀態(tài)被復(fù)用message_publish指令是否被EMQX接收topic和qos字段必須匹配delivery_dropped消息被丟棄reason字段指出原因如queue_full最典型的日志陷阱是[info] [MQTT] Client esp8266_livingroom_light connected后面緊跟著[warning] [MQTT] Client esp8266_livingroom_light disconnected due to keepalive timeout。這說(shuō)明心跳沒(méi)發(fā)不是網(wǎng)絡(luò)問(wèn)題而是ESP8266固件里client.loop()沒(méi)被調(diào)用——可能卡在某個(gè)while循環(huán)里或者WiFi連接失敗后沒(méi)重試。5.4 第四層端到端閉環(huán)驗(yàn)證當(dāng)所有層都顯示正常但燈還是不亮問(wèn)題一定在業(yè)務(wù)邏輯。我的驗(yàn)證清單主題一致性App發(fā)/livingroom/light/cmdESP8266訂閱/livingroom/light/cmd兩者必須一字不差區(qū)分大小寫(xiě)、斜杠位置載荷格式App發(fā)ON字符串ESP8266代碼里是否用strcmp(payload, ON) 0如果用String(payload).equals(ON)而payload是ON\n帶換行符比較永遠(yuǎn)失敗硬件狀態(tài)用萬(wàn)用表測(cè)繼電器輸出端確認(rèn)ESP8266 GPIO確實(shí)輸出了高電平。曾有個(gè)案例固件邏輯完美但繼電器模塊的VCC接錯(cuò)了電源軌始終不動(dòng)作最后分享一個(gè)真實(shí)案例客戶投訴“App控制空調(diào)沒(méi)反應(yīng)”我遠(yuǎn)程連上他的EMQX發(fā)現(xiàn)Dashboard里message_received_total飆升但message_delivered_total幾乎為0。抓包發(fā)現(xiàn)App發(fā)的指令Topic是/livingroom/ac/cmd而空調(diào)固件訂閱的是/livingroom/aircondition/cmd——多了一個(gè)單詞。改掉后問(wèn)題解決。這印證了那句話在IoT世界里90%的問(wèn)題是配置錯(cuò)誤不是代碼bug。我在實(shí)際部署中發(fā)現(xiàn)最有效的預(yù)防措施是在App里加入“設(shè)備診斷”頁(yè)點(diǎn)擊后自動(dòng)發(fā)送/device/diag指令設(shè)備回復(fù)包含WiFi信號(hào)強(qiáng)度、MQTT連接狀態(tài)、固件版本的JSON。這個(gè)功能上線后用戶報(bào)修量下降了70%因?yàn)?0%的問(wèn)題他們自己就能通過(guò)診斷頁(yè)定位。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美熟妇精品黑人巨大一二三区| 999综合色| 99精品九九九九九九| 欧美一二三区四五区| 秋霞欧美性爰视频| www.色吧5.com| 少妇精品久久久八区九区| 亚洲五月婷婷| 精品一区二区人妖| 美国人人操人人操| 中国AV美女| 亚洲美女精品九九视频| 欧美大色交| 欧美天天插| 亚洲最大的综合性av| 欧美色乱| 一区二区影视| 后入合集| 欧美92| 久久同城AV| 欧美男女午夜啪啪| 久操大香蕉手机视频在线看| 日本日逼视频网| 91精品国产日韩欧美综合| 九九热三级片| 日韩在线电影| 凌辱美少妇久久aV| 无套内射人妻在线播放| AV电影在线播放| 综合久久97| 日本男人天堂| 欧美激情精品久久久久久| 国产人妻一区二区三区欧美毛片| 九九玖玖精品| 97 九色| 久草视频制服诱惑| 96AV久久久| 99啪啪视频| 国产农村妇女精品一二区| 中文字幕人妻丝袜| 亚洲色图在线视频| 青青草日韩免费观看高清在线| 亚洲中文电影| 麻豆天美在线喷水AV| 男人天堂综合| 亚洲日本大香蕉1| 色偷偷综合91久久噜噜| 曰韩中文人妻视频| 欧美极品性爱天天射| 国模91| 五月天婷婷影院| 美女淫穴| 亚洲有码 视频一区| 骚女高跟AV在线| 天天综合AV| 91人妻超碰| 日少妇亚洲版| 91综合站| 综合熟妇一区二区三区| 久久色网| 免费a v| 中文字幕激情小说| 日本1区2区不卡视频| 日韩中文字幕国产| 亚洲成熟国产精品美女| 精品丰满人妻一区二区三区免费观| 可以免费观看的AV| 欧美72网页| 亚洲一区制服诱惑| 欧美亚洲情色| 多乙久久久久久| 日本三级R| 91xingse| 少妇高潮九九九九九九九| 欧洲综合色图| 我想要 啊 啊 啊| 亚洲国产成人福利在线观看| 国产精品日韩在线一区| 又粗又长又爽在线观看| 狠狠色丁香| 中文字日本乱码| 加勒比久久av| 欧洲成人性爱视频| 三级片大波波| 99999国产| 久久久久亚洲av综合波多野制衣| 亚洲天堂中文字幕无码男同| 啊啊啊久久久视频| 97香蕉网| 人妻中文在线| 中亚黄色三级大片| 伊人网青青| 91五月天| 高颜值美女口爆高潮浪叫| Av手机版天堂网| 国产精品一二三免费网站| 五月开心久久AV官网| 91美女小视频| 歐美一級亂黃99在綫精品| 亚洲情色 自拍| 无码高清操逼网址| 成人精品视频一区二区| 欧美激情综合| 婷婷亚洲天堂| 夜草网站| 欧美五区| 亚洲色图尤物视频| 久久国产精品,久久国产| 天天91~综合入口| 91精品国产一区三一| 色官网色综合| 目产99999久久999| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 97欧美久久久久久久| 亚洲 欧美 日韩 国产一区二区| 静品嫩模一区二区| 51一区二区三区| 国产成人无码啪| 高树玛利亚无码流出| 日韩成人在线性爱视频| 婷婷五月天福利| 97视频免费播放| 久热无码| 成人亚欧免费视频| 久9爱经典视频| 亚洲第一成人影院色播| 超碰吊日色| 操99| 99re免费| 密臀在线视频| 99久久久无码| 日韩久久三区| 天天在线91| 国产精品久久久久久 百度| 国产精品女aA片爽爽视频| 99热精品在线在线| 色色网91| 日韩精品一区二区人人人| 久久麻豆一区二区| 在线a亚洲视频播放在线| 精爱久久| 婷婷丁香五月天综合东京热| 中文字幕欧美日韩三级| 日本午夜福利视频| 久久亚州精品成人Av无| 久久国语| 欧美日韩国产传媒在线精品| 伊人五月天婷婷| 日韩内射视频| 熟女色综合久久| 91久久婷婷| 色噜噜人妻av 中文字幕| 国产欧美在线观看免费观看| 狠狠97| 久久久蜜桃一区二区三区| 日韩免费a级毛片无码a∨| 亚洲91网站| 狠狠干综合| 中文字幕高清精品一区| 欧美另类丝袜熟女| 久久国语| 久久久999网站| 99国产在线 精品 视频| 国产60页| 97色欧洲| 欧美最大综合网| 久青草影院| 精品国产91内射久久| 91模特在线观看| 久久久久久性爱片| 综合色播| 午夜一区二区三区国产| 少妇久久久| 国产吹潮女在线观看| 69AV女优男人的天堂| 国产一级作爱毛片| 99热日本| 激情网色| 青娱乐国产精品| 超碰97人人cao| 日韩啪啪视频| 亚洲国产成人精品女人久久久| 欧美亚洲高清不卡| 99久久综合| 五月天婷婷色色| 欧美日产国产在线成人第一区| 97超碰超碰| 美女天天干| 久久久久78| 亚洲国产一级中文综合久久天堂在线免费观看 | 亚洲欧美日韩制服另类| 国产深喉视频一区二区| 激情在线青青操| 亚洲91射| 日日97| 亚州欧美综合| 91美女国产在线| 中文字幕人乱码中文字的预防方法 | 国产九九久久久精品| 91操人视频| A 天堂在线观看视频| 天天操夜夜操狠很操| 九九九久久久| 成人乱人伦一区二区| 日本精品一级二级三级| 成人国产视频在线观看| 黄色大片视频在线免费看| 97干97色| 亚洲乱码精品一区二区| 日韩精品一区二区高清| 九九精品99| 韩日性爱av| 国产熟女完整版中字| 在线岛| 久久久久亚洲Aⅴ无码| 国产精品无码久久久久2025| 午夜国产成人福利视频| 婷婷日韩一区二区三区中文字幕在线| 亚洲情色五月天| 日韩久久超碰色| 欧美性暴力猛交XXXX | 亚洲美女色图| 精品一区二区三区蜜桃臀www| 久久99精品国产| 久久久久久久久久久久久久久久9| 操逼精品视频| 久久久天美| 国产不卡免费在线视频| 婷婷AV一区二区三区| 久久精品国产亚洲AV成人直播| 人妻熟女av国产网站| 精品久热| 国内操逼视频二区| 亚州高清AV| 老熟女91视频| 强奸乱伦AV网址| 色久桃花影院在线观看| 婷婷丁香久久| 国产精品suv一区| 欧美综合综合| 国产成人精品必看 | 精品无码产区一区二| JuliaAnnXXX888| 久操视频在线| nuu12国产麻豆精品| 97超碰热线| 久久国产精品视频| 亚洲熟妇乱女区二区三区| 7月婷婷综合| 在线视频 亚洲精品| 国产欧美日韩臀| 黑人粗大V S日韩女优视频| 亚洲欧美洲综合| 亚洲成熟国产精品美女| 老鸭窝在线视频播放| 欧美精品久久| 懂色aV一区二区天美传媒| 亚洲激情在线观看一区| 国产97色在线| 97伦乱| 九九热AV| 狼人久草| 欧美特黄视频网站| 国模不卡| 天天看片麻豆| 精品久久久久久中文字幕视频免费| 岛国大片在线观看网站入口| 麻豆影音天美视频| 久久午夜色播影院免费高清| 国产伦精品一区二区三区在线观| 香港成人一级视频在线青青草| 天天综合网视频91| 淫荡熟女乱伦网| 久艹伊人精品综合在线| 私人尤物在线精品不卡| 香蕉在线一区二区三区| 久久嫩草| 四虎884a| 亚洲第一页第二页激情| 五月天婷婷激情| 制服丝袜第二页| 日本丝袜人妻内射| 东京热不卡视频| 成人AV超碰免费在线| 亚码激情| 人人搞人人插人人操| 天天综合色| 91超碰丝袜制服| 亚洲五码一区二区三区| 人妻激情在线视频| 久草免费福利在线播放| 91亚洲丝袜| 乱论91| 强奸熟女一区二区三区| 色狠狠 - 百度| 国产亚洲色婷婷99精品91| 日韩在线观看三级电影| 啊啊啊好湿国产一二| 国产h小视频在线观看免费| 精品久久久久久亚洲| 天天狂操夜夜狂日| 中文字幕av色| 一个色导综合| 91色欧美| 午夜福利久久久噜久噜久久综合| 不卡av在线中文字幕| 亚洲中文电影| 亚洲成熟国产精品美女| av影院十区| 大香蕉操久久| 中文字幕一区二区免费在线| 久污| 九九碰九九爱97超碰| 色色九区| 激情欧美日韩女同久久| 日欧操屄视频| 涩综合导航| 成人久久久精品| 婷婷久久大香蕉| 人妻久久一区二区三区| 国产性爱在线视频一区二区| 性高潮久久久| 日本亚洲vr欧美不卡高清专区| 欧美成人性爱视频在线播放| 色老牛| 九九RE视频在线精品| 天天天干977| 成人精品视频一区二区| 欧美日韩香蕉| 欧美国产精品久久九九| 999九九九九国产动| 97干在线| 精品午夜福利国产一区二区在线观看| 欧美偷拍| 亚洲无992tv| 九一综合精品视品av| 一区二区影院| 精品高潮| 婷婷8月天青娱乐| AV高清一区| 国产精品亚洲免费| 中文字幕久热视频在线| 91春色| 加勒比综合a∨| 色女网日韩| 国产精品亚洲美女久久久久| 成人av影院在线观看| 日韩精品 欧美激情| 久久国产对白激情浪潮| 日日狠狠久久偷偷色综合免费| 亚洲精品性爱片| 欧美亚洲综合高清在线| 久草毛片| 97就爱干| 欧美综合传媒| 亚洲大胆人体av| 欧插网站| 国产原创自拍| 五月激情视频| 一区二区娱乐网站| 福利在线黄片| 日韩午夜精品一区二区三区电影| 亚洲视频中文一区| 国产精品噜噜噜日日日| 久久激情视频| 久久久免费高清中文视频| 欧洲精品网| 亚洲欧美中日韩| 超踫中文字幕| 91色综| 首页亚洲国产高跟丝袜诱惑视频| 亚洲色图殴美色图激情乱伦| 国产网红精品| 日韩欧美tv一区二区在线观看| 91一区二区三区蜜桃| 一起草高清无码| 91情色| 91久久青青草原精品| 欧美日韩欧美| 蜜臀久久99精品久久久久久酒店| 久久啊啊| www.av家庭乱伦| 久久人妻| 久久国产熟女影院| 国产91av在线播放| 一级片在线观看高清无码| 边做饭边操逼逼| 欧美国产精品久久九九| 国产无码精品无码| 性影在线视频| 日韩中文字幕视频在线观看| 高清国产av无码| A久久| 日本高清电影欧美色图| 花野真衣| 性videos欧美熟妇hdx| 欧美激情综合| 操逼大黄片| 男女激情黄色网址| 久久久久久国产精品| 亚洲人人操| 91九久| 欧美暴力猛交| 色原狠狠天天天| 校园春色亚洲色图| A级毛片在线看免费| h4610国产人妻| 午夜精品探花| 国产在线76页| 啊啊啊不要啊啊受不了了视频在线 | 尤物网址| 337p大胆噜噜噜噜噜91Av| av九九| 九九毛片这里只有精品| 色天堂综合| 亚洲精品国产熟女久久久| 男人的天堂kva| 精品久久久av无码免费| 久久九九国产精品| 男女91| 果冻传媒A片一二三区| 91岛国动作片| 先锋色眉乱伦资源| 午夜情侣自拍网站| 91精品人妻五十路| 中文字幕,人妻,日韩| 凸凹视频在线观看| 99自拍B亚洲| 亚洲 欧美 综合 91| 欧美天天综合网| 性开放中文AV高清无码免费看| 测评在线观看AV| 玖玖资源中文字幕制服丝袜| 婷婷久草一区二区三区| 亚洲无码精品AV久久久| 日韩激情无码影院| 亚洲国产日韩欧美熟妇在线| 77国产精品| 夜夜夜夜久久久久| 欧美一级特黄淫片在线观看| 日日狠狠久久偷偷色综合免费| 久草婷婷| 91欧洲国产成人久久精品网站| 国产一区二区在线播放量| 秋霞无码av鲁丝片一区| 亚洲中文字幕噜噜噜久久久| 亚洲另类久操网| 大香蕉92| 岛国激情视频软件| 国产性感在线观看| 青草精品视频日本久久久久网站在线| 家庭乱伦网站国产| 久久国产精品熟女人妻| 黑人性欧美| 激情一区二区三区在线观看| 久久熟女嫩草成人片免费| 精品久久无码午夜福利| 视频在线观看一二三区| 99999亚洲| 国产一区二区三区影片| 99re在线视频这里只有精品| 97精品熟女少妇一区 | 亚洲欧洲成人在线电影| 五月婷婷综合网| 九九久精品| 操逼操逼逼操操逼91| 91成人国产综合久久精品蜜月| 亚洲中文字幕熟女| 久久这里精品国产99丫e6| 在线天堂资源亚洲| 色色色综合网| 男人的天堂 在线一区| 国产999精品久久久久久| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 懂色AV一区二区三区| 亚洲区 欧美区| 丁香五月性| 欧美狠狠狠| 99精品久久| 亚洲欧洲激情卡通另类文学四射小说网站| 密桃99999| 久久国产成人精品国产成人亚洲| 亚洲色性情三级| 亚川综合视频| 很狠操| 日韩人妻一区二区精品| 熟女熟妇一区二区三四区 | 亚州五月| 色老汉玖玖爱| 久久久久久亚洲中文| 欧美 熟女 日韩| 中国亚洲呦女专区| 天天综合中文字幕 91| 99热色这里只有精品| 亚洲另类春色| 久草精品一区| 黑丝少妇在线观看| 亚洲天堂五月天国产| 色偷综合| 小草三级久久观看| 国产不卡免费在线视频| 久久大香蕉97| 高树玛利亚无码流出| 美国人人操人人操| 国产精品午夜福利| 色婷婷成人综合| 无码高清操逼| 91N综合网在线| 91狠婷| 大香蕉伊人75| 九九热精品免费视频| 高潮毛片无遮挡高清免费| 久久久精品九| 青青操青娱乐| 欧美成人一级免费电影| 狠狠爱综合网| 99在线精品观看视频中文 | 久久国产精品m码| 欧美人妻色| 天堂种子在线www网资源| 日韩特级毛片免费观看全集| 精品一区二区2| 粉嫩国产精品久久久| 国产精品青草综合久久| 国产亚洲精品美女久久久| 超碰精品97| 国产乱人妻精品入口| 国产按摩一区二区三区| 国产欧美亚洲精品a第2页| w w w.久久精品| 天堂网亚洲区手机版| 狠狠亚洲| 情色五月天久久久| 亚洲精品久| 97任你吞精| 亚洲免费成人在线高清无码视频| 亚洲精品97| julia国产在线| 蜜臀一二三区| 亚洲综合图片在线| 久久久久ab| 黄色成品网站| 人妻天天操天天爽视频免费| 人妻少妇色综合| 亚洲码专区| 手机在线人成免费视频| 欧美性爱第一区| 亚洲国产精品99久久久| 日本爽爽爽爽爽爽免费视频| 91免费看一区二区三区 | 国产刺激视频| 久久99久久99久久99人受| 中国乱伦一区二区| 日本色色色视频| 激情网色| 九九探花视频在线观看| 黄色网址在线免费观看| 国产精品久久久久久 百度| 免费观看国产小粉嫩喷水精品午| 人人贴人人摸| 欧美成人A天堂片在线观看| 欧美呦呦性爱| 色色香蕉| 九九综合久久| 99色在线| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 搞中出久久| 精品无码不卡视频| 久久国产热视频97电影| 欧美成人性爱视频免费观看| 人人插人人搞人人操| av资源在线播放天堂| 秋霞视频一区二区| 国产又粗又又黄又猛| 精品免费1| 91久久18禁| 加勒比伊人综合| 五月天精品| 国产精品视屏| 久久精品中文字幕观看| 网页导航五月天免费一二三区| www欧美性爱| 日本福利社| AND人妻系列| 好屌色综合| 久久久九| 人妻另类 专区 欧美 制服| 激情五月天插| 99精品在线| 色综合加勒比四四季| 免费成人在线熟妇网| 91精品91久久久久77777| 最近二区三区视频大全 | 久久久男人的天堂| 狠狠入| 国产精品麻豆成人av| 免费作爱一级视频| 情色AV电影| 98精品国产乱码久久久久久| 漂亮人妻被强中文字幕hd| 欧美性爱第1 页| 色哟哟511老熟女| 国产精品天美传媒| 97精品视频在线| a片 xxxx受爽视频| 亚洲第一无码播放立川理惠| 九九热精品在线| 久久久久久久9最新免费视频观看| 精品人妻一区二区三区视频在线| 超碰无码加勒比| 91丝袜美女国产| 久久久免费懂色| 伊人天天久久动态图| 福利色色| 婷婷15月天青娱乐| 国产高清亚洲日韩一区| 中文字幕在线日亚洲9| 啊啊啊啊啊好大好舒服想要| 一区二区三区不卡视频| www…国产操逼| 亚州久久9| 亚洲成a人v欧美综合天堂下载| 熟女突然公开看18禁影片| 玖玖爱一区在线| 精品无码久久久久久久久果冻糖心| 亚洲性爱无码乱伦av| 国产60区。| 97精品免费| 亚洲欧洲另类| 97人人夜| 色婷婷亚洲婷婷| 亚洲极品| 麻豆啪啪啪视频| 欧美日韩国产人人| 精品欧美А∨无码黑人大荫蒂| 精品久久久av| 成·人免费午夜在线观看| 国产精品大香蕉| 国产精品一二三| 蜜乳AV网址| 中文字幕乱偷人妻久久艾草网| 国产精品久久久久无码A√| 久久25| 91久久久亚洲| 欧美天天综| 偷拍 欧美 日韩| 中文字幕少妇色| 欧美不卡在线一区二区| 97超碰色屌| 91搞逼视频| 欧美亚洲美少妇一区二区| 国产在线观看91精品一区| 大香蕉综合| 无码区蜜乳| av72网| 日本高清_区二区三区| 伊人色综合欧美| 强奸乱伦动态污图免费| 超碰 欧美| 久热免费视频| 极品国产内射| 狠狠躁天天躁日日躁| 久久无码成人| 国产精品夜夜夜| 91精品综合久久久久久五月丁香| 亚洲色阁| 97se综合网| 天天综合网日韩7799| 中文字幕免费看| 日本三级中国三级99人妇网站| 综合欧美亚洲| 欧美韩国你懂得在线| 五月天黄色激情视频| 操熟女91| 日韩 欧美 校园一区| 欧美日韩香蕉| 亚州综合色| 久干网| 亚洲精品久久久久久久蜜桃臀| 不卡在线观看视频| 美欧老女人97| 亚洲精品视频在线| 久久久久久久久久va| 欧美激情一| 精品无码一区二区| 久久精品国产亚洲AV片多多| 中文字幕在线免费观看| 久久 亚洲 日韩 人妻| 影音先锋国产精品| www.亚洲黄色| 欧美日韩中文字幕不卡| 欧美色天堂网在线视频| 九九色影院| 久久久久久电影| 97爱亚洲| 色97国产69香蕉| 亚洲熟妇熟在线电影视频| 欧洲熟妇xxXx欧美老妇裸体| 老熟女乱伦一区| 九九九九亚洲| 91精品国久久久久久无码| 亚洲丝袜二区| 首页中文字幕中文字幕免费| 欧亚无码视频| 人人妻人人澡人人爽久久av| 日韩欧美中文字| 久久久久久久 九九九九九九九| 亚洲天堂7777| 中文字幕人成乱码熟女香港| 99re免费| 亚洲黄色电影| 加勒比综合a∨| 日日骚 av| 久久久久久久极品香蕉视频| 足交视频老司机| 素人美腿视频网站| 九九热在线视频| 日韩不卡av一二三| 国产69精品久久久久99尤物| 国产欧美日本亚洲精品| 久久人妻| 91丝袜美女视频| 日日躁天天躁狠狠躁| 97视频在线免费播放| 天天综合影院91| 99999久久久久9国产精品| 99热综合| 五月丁香影视| 日本久久99| 欧美日韩岛国大片在线观看| 91在线视频免费播放| 午夜福利1区2区3区| 亚洲啪啪综合?v一区综合精品区| 超碰久超碰久| 亚洲欧美清纯| 94色色电影网| 97亚洲在线| 人人操人人肉久久精品| 91精品91久久久中77777| 理论久久婷婷网8| 91亚洲黄色网| 精品免费囯产一区二区三区| 992大香蕉| 丰满人妻一区二区三区免费| 欧美日韩中文字幕人妻| 精品日韩| 国产兽交视频在线播放| 99这里只有精品国产| 人人贴人人摸| 乱伦Av网| 在线国产探花| 人妻啊啊人妻啊啊| 狼人综合婷婷激情四射| 自拍盗摄一区| 精品美女久久一二三| 97欧美色综合| 97资源站日韩| 久久产精品一区二区三区电影| 亚洲精品国产精品成人| 69少妇一区二区| 一区二区影院| 99精品久久| 麻豆久久久久久久久丝袜| 99蜜桃臀亚洲成人在线观看| 黑人粗大V S日韩女优视频| 五月天人妻综合| 亚洲一二三四区| 被男人吃奶很爽的毛片| 91三级理论片播放器| 五月丁香| 欧美在线55555| 天天爽入口| 97干97色| 粉嫩不卡一区二区性爱| 天天日天天舔天天喷天天射| 96精品久久久久中文字幕| 91性| 三上悠亚在线毛片91| 91精品久久久久五月天精品| 亚洲成av人片色午夜乱码| 青青网三级视频| 97在线观视频免费观看| 欧美综合综合| 亚洲精品尤物yw在线影院| 国内毛片免费h片在线| 国产尤物在线三区| 欧美一区二区三区互相| 色婷婷九月| 精品亚洲俞拍视频一区| 99热婷婷一区二区三| 国产精品亚洲无码| 东京热男人的天堂网| 色天堂在线观看| 神马久久久久久| 午夜寂寞欧美| 伊人丝袜美腿高跟在线观看高清| 日日骚av| 亚洲一曲日韩精品| 99丝袜福利在线播放| 超碰到97情色| 小视频国产| 天天综合网国产| 欧美最婬乱婬爆婬牲视频| 欧美自拍偷拍综合图片| 国产精品交换一区二区| 欧美一品道| 懂色中文一区二区三区| 黄污污污污| 久久99久久99精品天美传媒棢·纸:. | 狠狠操,使劲操| 五月天激情综合网| 干美女人妻| 在线观看成人性爱免费小视频| 午夜精品99久久久久传媒| 日本道人妻久久久在线不卡色视频| 中文字幕乱码人妻二区三区| 青娱乐导航AV| 亚洲天堂2020| 秋霞曰韩R级| 精品97精品97| 亚洲毛片基地专区| 婷婷综合五月天| 欧美日韩人妻精品系列一区二区三区| 色情乱伦AV| 97网址97| 国产精品宅男免费| 91激情综合| 国产精品网址| 加勒比海成人视频网| 国产中文字幕在线点播| 无码99| 久久久国产护士丝袜美腿一| 久热精品在线国产| 2020中文字幕| 国产高清自拍| 亚洲天堂另类小说男人| 欧美组图日韩亚洲中文字幕| 欧美熟爽综合| 波多野结衣之双飞调教在线播放 | 精品国产乱码久久久久久久久久毛片| 性爱乱伦一区| www.久久超碰| 色色色热| 最新亚洲黄色免费电影 | aaa亚无码专区| 九热大香蕉| 人妻少妇被猛烈进入中| av东京热男人的天堂| 亚洲色 国产 欧美 日韩| 欧美第二页午夜| 人人天天干干| 天天干18禁| 欧美九九99久久精品| 操婢日韩| 亚洲精品久久久久久| 91婷婷| 思思热国产高清| 三级网站超变态精品| 国产高清无码一区三区二区| 997色在线| 男人的天堂不卡一区二区| 人人妻人人爱人人玩| 五月婷婷hd| 色情乱伦AV| 啊啊啊啊好爽好舒服一区二区易域| 四虎 精品 WWW| 超碰成人公开| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 岛国大片在线观看网站入口| 大香蕉一人| 天天干2区3区| 欧美系列在线一区二区| 亚洲不雅视频1区二区| 欧美亚洲影视| 女人高潮大叫一级毛片| 亚洲国产美女久久久久| 91女优在线观看 | 夜夜操av亚洲一区二区| 深夜国产一区二区三区在线看| 久久久一区二区三区麻豆| 久久精彩视频9| 搡老人老9丨女老熟人| 精品人妻一区二区三区在线视频不卡| 亚洲永久AV无码精品秋霞| 午夜福利视频在线一区| 激情专区综合| 国产精品人妻一区二区| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 色臀aV| 久操高青| 性爱av网站| 在线岛国新天堂8| 免费在线视频97| 亚洲有码第一页| 1024亚洲中文字幕久在线看片你懂的| 福利色色| 日韩综合成人免费视频| 精品传媒在线一区| 天天天堂影视日韩亚洲91| 91久久精品国产| 2018色综合天天操| 亚洲 自拍偷拍 欧美| 在线综合网| 一二三区视频在线观看| 熟女精品一区二区在线观看| 亚洲伊人久久精品狠狠在线| 99操视频| 91天堂色男人的天堂| 中文字幕日韩电影人妻| 超碰78| 啊啊啊好大好深| 职场同事知名国产国产精品久久欧美日韩 | 无码人妻系列少妇| 亚洲成人精品久久久| 色综合91| 伊人天堂在线| 色五月亚洲| 狠狠操综合| 亚洲一区二区三区欧美日韩| 午夜视频好爽啊| 日韩熟女无码| 亚洲欧美成人网站AAA| 99热销国产这里有精品| 婷婷九月丁香| 99这里只有精品| 丁香7月婷婷| 91亚洲欧美综合高清在线| 欧日韩在线观看| 素颜老阿姨乱情色| 青青国产在线拍揄自揄拍| 97一区二区蜜臀| 日韩中文字幕熟妇人妻| 日韩欧美麻豆大片| 欧美精品另类人妖xxxx| 精品视频日日夜夜| 亚洲91少妇| 91超碰人人| 色性荡荡荡荡视频| 殴美日韩m| 九九九九日本| 动漫av中文| 少妇第一页| 超碰 国产熟女精品一区| 国产吹潮女在线观看| 日韩精彩视频| 2017,超碰| 在线不欧美| 国产偷拍网站| 台湾成人无码AV| 丁香六月东京热| 五月天色图| 天天日B狠狠操| 亚洲丝袜色图| 99re6国产精品99re| 天美久久久久| 中文字幕乱码在线| 看免费的黄片| 首页中文字幕中文字幕免费| 亚洲av乱伦色图网站| 丁香六月婷婷久久综合| 久久久999网站| 97伪v| 97超碰影音| 97超碰站| yellow网站免费观看日韩高清无码| 怡红院一区二区熟女人妻| 97五月天| 四虎免费看黄| 国产91丝袜 在线播放| 日本欧美中文字幕| 久久av一级av少妇av高潮| 国产欧美一区激情交| 欧美制服另类丝袜| 天天干人妻| 97天天操| 多毛小伙内射老太婆| 五月天综合在线| 日少妇亚洲版| 久9爱精品| 狠狠色伊人亚洲综合网站色| 国产 日韩 另类 视频一区爱| 看日韩美女二区三区免费操逼视频| 天天香香欲综合| 偷拍亚洲情色| 2019精品国产无码成人| 欧美一级黄片免费播放| 乱理日韩中文| 东北女人性交| 超碰色男人操熟女| 一区二区你上我| 91熟女.com| TS人妖另类精品视频系列| 国产高清在线观看欧美| 欧美v日韩欧亚洲电影天堂色诱,国产传媒 | 国产日韩久久| 亚洲古典另类欧美在线| 久久婷婷在线观看视频| 久九九九九九九九热| 国产精品女生av| 97网址www| 中文字幕青青草| 欧美操逼熟女| 高树玛利亚无码流出| 精产品久久| 欧美亚洲日本视频久久久| 天天综合网在线| 天天做天天爱| 亚洲激情av| 超碰97导航| 日本操逼视频不卡直接放| 亚洲色图大香| 亚洲第一视频 欧美风情 日韩| 欧美成人A天堂片在线观看| 啊啊啊啊视频免费| 日韩欧美女求操每天更新| 亚洲国产成人精品无码专区| 国产欧美日韩臀 | 日本一二三高清| 亚洲全色网| 青青草操逼逼视频| 日日干日日摸| 国内精品伊人久久久久影院会| 天天看高清麻豆| 蜜乳成人AV| 在线天堂999| 日本操逼无码| 四虎影视在线| 欧美激情综合| 骚货| 激情婷婷综合久久| 青青欧美在线| 久久久久久久强迫| 性色avv| 视频国产成人精品日本亚洲18| 999久久久精品国产| 熟女熟妇一区二区三四区| 国产亚洲99久久精品| 啊啊啊骚| 亚洲综合在线视频| 伊人91| 99青草| 国产亚洲福利第一页丝袜| 蜜桃臀 后入 一区 二区 三区 在线| 91狠狠综合网| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 天天影视之亚洲综合网| 亚洲?V无码专区在线电影| 国产天天看| 日本免费一级AAA大片器| 天天影视射综合网| 乱伦图av| 中文字幕无码不卡啪啪| 亚洲 欧美 手机在线观看| 春色综合免费| 九九在线视频| 欧美一级A一级a爱片久久| 欧美最婬乱婬爆婬性视频 | 日本孕妇一区二区视频操逼免费看 | 中文字幕第7页| 色色无码| 岛国黄片网站| 丰满人妻一区| 欧美色婷婷| 亚洲毛片基地专区| 秋霞男人网| 亚洲欧美在线观看免费| 高清孕妇孕交 交孕妇| 六月丁香久久| 男人天堂电影院| 热久日综合| 9999免费精彩视频| 啪啪视频免费在线观看| 欧美青青视频| 伊人99热| 1769国内精品视频| 久久成人精品| 欧美精品人妻视频| 午夜啪啪片| 国产综合久久久麻桃个| 884t在线| 99久久99久久综合| 成人av福利在线观看| 国产自偷| 9热9热综合网| 久久欧美性爱视频| 精品国产一区探花在线观看| 欧洲精品区| 久操B网| 国产成人免费观看在线视频| 综合第一页| 锕锕好爽 死我在线观看| 91男女啊啊啊| 婷婷五月天激情网| 欧美Ⅴ性爱| 少妇大屁屁| 国产乱码精品久久久久久| 五月色综合| 操逼国产免费| 91久久久亚洲| 亚洲色图日韩丝袜制服一区二区五月在线| 免費人妻夜夜爽天天爽爽一区| 国内毛片国产专区二| 人人看黄色视频| 欧美综合天堂| 超碰碰小说97| 99re95| 人妻天天操天天爽视频免费| 在线观看日韩av不卡| 国产亚洲性生活视频播放| 精品国产AV一区天美传媒| 日韩97视频| 国产丰满熟夫69mpp| 电影69乱码96| 97久久超碰| 91精品人妻电影| 欧美黑人精品在线播放| 久久产精品一区二区三区电影| 成人区人妻精品一| 97视频在线观看网站| 天天综合网1| 蜜臀精品1区2区| 蜜臀久久久久久999| 久久久久9999| 日本中文字幕在线视频| 国产黄色 A 片免费看| 麻豆国产视频精品观看| 欧美日韩国产成人高清| 综合久久2017| 久久午夜神马| 亚洲 欧美 日本 国内 首页| 另类专区加勒比| 久草精品一区| 嗯,啊。舔我逼| 欧美熟女丝袜| 日韩精品9区| 97超碰超欧美。| 欧美 亚洲 另类 综合| 欧美日本天堂| 伊人久久久日韩一区| 免费网站观看www在线观| 美女高潮视频91| 青青草吊丝| 干b在线性社区| 亚洲 欧美 另类 日韩 人妻一区| 五月天伊人| 91久久18禁| www被窝色com| 久久人人爽av亚洲精品天堂桃色| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 91狠狠色丁香婷婷综合久久| 超碰狠狠操| 欧美黑人XXXⅩ高潮交| 久操黄色视频| 中文字幕乱碼在线| 亚洲吊色| 亚洲久久东京热一二三四五区视频| 亚州欧美综合| 另类小说欧美激情校园春色| 欧美综合91| 人人操,人人插|