精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā):基于MQTT消息總線的設(shè)計過程(下)

物聯(lián)網(wǎng) 物聯(lián)網(wǎng)應(yīng)用
在上一篇文章中物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā):基于MQTT消息總線的設(shè)計過程(上),我們聊了在一個物聯(lián)網(wǎng)系統(tǒng)的網(wǎng)關(guān)中,如何利用 MQTT 消息總線,在嵌入式系統(tǒng)內(nèi)部實現(xiàn)多個進(jìn)程之間的相互通信問題。

 一、前言

在上一篇文章中物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā):基于MQTT消息總線的設(shè)計過程(上),我們聊了在一個物聯(lián)網(wǎng)系統(tǒng)的網(wǎng)關(guān)中,如何利用 MQTT 消息總線,在嵌入式系統(tǒng)內(nèi)部實現(xiàn)多個進(jìn)程之間的相互通信問題。

這個通信模型的最大幾個優(yōu)點是:

  1. 模塊之間解耦合;
  2. 各模塊之間可以并行開發(fā);
  3. 把 TCP 鏈接和粘包問題交給消息總線處理,我們只需要處理業(yè)務(wù)層的東西;
  4. 調(diào)試方便;

以上只是描述了在一個嵌入式系統(tǒng)內(nèi)部,進(jìn)程之間的通信方式,那么網(wǎng)關(guān)如何與云平臺進(jìn)行交互呢?

在上一篇文章中已經(jīng)提到過:網(wǎng)關(guān)與云平臺之間的通信方式一般都是客戶指定的,就那么幾種(阿里云、華為云、騰訊云、亞馬遜AWS平臺)。一般都要求網(wǎng)關(guān)與云平臺之間處于長連接的狀態(tài),這樣云端的各種指令就可以隨時發(fā)送到網(wǎng)關(guān)。

這一篇文章,我們就來聊一聊這部分內(nèi)容。

在公眾號回復(fù):mqtt,獲取示例代碼的網(wǎng)盤地址。

二、與云平臺之間的 MQTT 連接

目前的幾大物聯(lián)網(wǎng)云平臺,都提供了不同的接入方式。對于網(wǎng)關(guān)來說,應(yīng)用最多的就是 MQTT 接入。

我們知道,MQTT 只是一個協(xié)議而已,不同的編程語言中都有實現(xiàn),在 C 語言中也有好幾個實現(xiàn)。

在網(wǎng)關(guān)內(nèi)部,運行著一個后臺 deamon: MQTT Broker,其實就是 mosquitto 這個可執(zhí)行程序,它充當(dāng)著消息總線的功能。這里請大家注意:因為這個消息總線是運行在嵌入式系統(tǒng)的內(nèi)部,接入總線的客戶端就是需要相互通信的那些進(jìn)程。這些進(jìn)程的數(shù)量是有限的,即使是一個比較復(fù)雜的系統(tǒng),最多十幾個進(jìn)程也就差不多了。因此,mosquitto 這個實現(xiàn)是完全可以支撐系統(tǒng)負(fù)載的。

那么,如果在云端部署一個 MQTT Broker,理論上是可以直接使用 mosquitto 這個實現(xiàn)來作為消息總線的,但是你要評估接入的客戶端(也就是網(wǎng)關(guān))在一個什么樣的數(shù)量級,考慮到并發(fā)的問題,一定要做壓力測試。

對于后臺開發(fā),我的經(jīng)驗不多,不敢(也不能)多言,誤導(dǎo)大家就罪過了。不過,對于一般的學(xué)習(xí)和測試來說,在云端直接部署 mosquitto 作為消息總線,是沒有問題的。

三、Proc_Bridge 進(jìn)程:外部和內(nèi)部消息總線之間的橋接器

下面這張圖,說明了 Proc_Bridge 進(jìn)程在這個模型中的作用:


  1. 從云平臺消息總線接收到的消息,需要轉(zhuǎn)發(fā)到內(nèi)部的消息總線;
  2. 從內(nèi)部消息總線接收到的消息,需要轉(zhuǎn)發(fā)到云平臺的消息總線;

如果用 mosquitto 來實現(xiàn),應(yīng)該如何來實現(xiàn)呢?

1. mosquitto 的 API 接口

mosquitto 這個實現(xiàn)是基于回調(diào)函數(shù)的機制來運行的,例如:

  1. // 連接成功時的回調(diào)函數(shù) 
  2. void my_connect_callback(struct mosquitto *mosq, void *obj, int rc) 
  3.     // ... 
  4.  
  5. // 連接失敗時的回調(diào)函數(shù) 
  6. void my_disconnect_callback(struct mosquitto *mosq, void *obj, int result) 
  7.     // ... 
  8.  
  9. // 接收到消息時的回調(diào)函數(shù) 
  10. void my_message_callback(struct mosquitto *mosq, void *obj, const struct mosquitto_message *message) 
  11.   // .. 
  12.  
  13. int main() 
  14.     // 其他代碼 
  15.     // ... 
  16.      
  17.     // 創(chuàng)建一個 mosquitto 對象 
  18.     struct mosquitto g_mosq = mosquitto_new("client_name"trueNULL); 
  19.      
  20.     // 注冊回調(diào)函數(shù) 
  21.     mosquitto_connect_callback_set(g_mosq, my_connect_callback); 
  22.     mosquitto_disconnect_callback_set(g_mosq, my_disconnect_callback); 
  23.     mosquitto_message_callback_set(g_mosq, my_message_callback); 
  24.     // 這里還有其他的回調(diào)函數(shù)設(shè)置 
  25.    
  26.     // 開始連接到消息總線 
  27.     mosquitto_connect(g_mosq, "127.0.0.1", 1883, 60); 
  28.    
  29.     while(1) 
  30.     { 
  31.       int rc = mosquitto_loop(g_mosq, -1, 1); 
  32.       if (rc) { 
  33.         printf("mqtt_portal: mosquitto_loop rc = %d \n", rc); 
  34.         sleep(1); 
  35.         mosquitto_reconnect(g_mosq); 
  36.       } 
  37.     } 
  38.     mosquitto_destroy(g_mosq); 
  39.     mosquitto_lib_cleanup(); 
  40.     return 0; 

以上代碼就是一個 mosquitto 客戶端的最簡代碼了,使用回調(diào)函數(shù)的機制,讓程序的開發(fā)非常簡單。

mosquitto 把底層的細(xì)節(jié)問題都幫助我們處理了,只要我們注冊的函數(shù)被調(diào)用了,就說明發(fā)生了我們感興趣的事件

這樣的回調(diào)機制在各種開源軟件中使用的比較多,比如:glib 里的定時器、libevent通訊處理libmodbus 里的數(shù)據(jù)處理、linux 內(nèi)核中的驅(qū)動開發(fā)和定時器,都是這個套路,一通百通!

在網(wǎng)關(guān)中的每個進(jìn)程,只需要添加上面這部分代碼,就可以掛載到消息總線上,從而可以與其它進(jìn)程進(jìn)行收發(fā)數(shù)據(jù)了。

2. 利用 UserData 指針,實現(xiàn)多個 MQTT 連接

上面的實例僅僅是連接到一個消息總線上,對于一個普通的進(jìn)程來說,達(dá)到了通信的目的。

但是對于 Proc_Bridge 進(jìn)程來說,還沒有達(dá)到目的,因為這個進(jìn)程處于橋接的位置,需要同時連接到遠(yuǎn)程和本地這兩個消息總線上。那么應(yīng)該如何實現(xiàn)呢?

看一下 mosquitto_new 這個函數(shù)的簽名:

  1. /* 
  2.  * obj - A user pointer that will be passed as an argument to any 
  3.  *      callbacks that are specified. 
  4. */ 
  5. /* 
  6. 最后一個參數(shù)的作用是:可以設(shè)置一個用戶自己的數(shù)據(jù)(作為指針傳入),那么 
  7. mosquitto 在回調(diào)我們的注冊的任何一個函數(shù)時,都會把這個指針傳入。 
  8.  
  9. 因此,我們可以利用這個參數(shù)來區(qū)分這個連接是遠(yuǎn)程連接?還是本地連接。 
  10. */ 
  11. libmosq_EXPORT struct mosquitto *mosquitto_new(const char *id, bool clean_session, void *obj); 

所以,我們可以定義一個結(jié)構(gòu)體變量,把一個 MQTT 連接的所有信息都記錄在這里,然后注冊給 mosquitto。當(dāng) mosquitto 回調(diào)函數(shù)時,把這個結(jié)構(gòu)體變量的指針回傳給我們,這樣就拿到了這個連接的所有數(shù)據(jù),在某種程度上來說,這也是一種面向?qū)ο蟮乃枷搿?/p>

  1. // 從來表示一個 MQTT 連接的結(jié)構(gòu)體 
  2. typedef struct{ 
  3.   char *id; 
  4.   char *name
  5.   char *pw; 
  6.   char *host; 
  7.   int port; 
  8.   pthread_t tHandle; 
  9.   struct mosquitto *mosq; 
  10.   int mqtt_num; 
  11. }MQData; 

完整的代碼已經(jīng)放到網(wǎng)盤里了,為了讓你先從原理上看明白,我把關(guān)鍵幾個地方的代碼貼在這里:

  1. // 分配結(jié)構(gòu)體變量 
  2. MQData userData = (MQData *)malloc(sizeof(MQData)); 
  3.  
  4. // 設(shè)置屬于這里連接的參數(shù): id, name 等等 
  5.  
  6. // 創(chuàng)建 mosquitto 對象時,傳入 userData。 
  7. struct mosquitto *mosq = mosquitto_new(userData->id, true, userData); 
  8.  
  9. // 在回調(diào)函數(shù)中,把 obj 指針前轉(zhuǎn)成 MQData 指針 
  10. static void messageCB(struct mosquitto *mosq, void *obj, const struct mosquitto_message *message) 
  11.   MQData *userData = (MQData *)obj; 
  12.    
  13.   // 此時就可以根據(jù) userData 指針中的內(nèi)容分辨出這是哪一個鏈接了 

另外一個問題:不知道你是否注意到示例中的 mosquitto_loop() 這個函數(shù)?這個函數(shù)需要放在 while 死循環(huán)中不停的調(diào)用,才能出發(fā) mosuiqtto 內(nèi)部的事件。(其實在 mosuiqtto 中,還提供了另一個簡化的函數(shù) mosquitto_loop_forever)。

也就是說:在每個連接中,需要持續(xù)的觸發(fā) mosquitto 底層的事件,才能讓消息系統(tǒng)順利的收發(fā)。因此,在示例代碼中,使用兩個線程分別連接到云平臺的總線和內(nèi)部的總線。

四、總結(jié)

經(jīng)過這兩篇文章,基本上把一個物聯(lián)網(wǎng)系統(tǒng)的網(wǎng)關(guān)中,最基本的通信模型聊完了,相當(dāng)于是一個程序的骨架吧,剩下的事情就是處理業(yè)務(wù)層的細(xì)節(jié)問題了。

萬里長征,這才是第一步!

對于一個網(wǎng)關(guān)來說,還有其他更多的問題需要處理,比如:MQTT 連接的鑒權(quán)(用戶名+密碼,證書)、通信數(shù)據(jù)的序列化和反序列化、加密和解密等等,以后慢慢聊吧,希望我們一路前行!

 

責(zé)任編輯:姜華 來源: IOT物聯(lián)網(wǎng)小鎮(zhèn)
相關(guān)推薦

2021-02-21 08:31:45

物聯(lián)網(wǎng)MQTT消息

2019-12-27 10:42:45

HTTPMQTT物聯(lián)網(wǎng)

2021-09-07 05:52:26

物聯(lián)網(wǎng)網(wǎng)關(guān)工業(yè)物聯(lián)網(wǎng)物聯(lián)網(wǎng)

2023-01-31 15:35:46

物聯(lián)網(wǎng)邊緣計算工業(yè)物聯(lián)網(wǎng)

2022-01-08 21:49:00

物聯(lián)網(wǎng)網(wǎng)關(guān)PLC物聯(lián)網(wǎng)

2020-10-31 21:40:35

物聯(lián)網(wǎng)網(wǎng)關(guān)物聯(lián)網(wǎng)IOT

2020-07-08 07:36:40

物聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2023-09-18 15:36:37

物聯(lián)網(wǎng)物聯(lián)網(wǎng)生態(tài)系統(tǒng)

2020-10-11 17:01:18

物聯(lián)網(wǎng)網(wǎng)關(guān)工業(yè)物聯(lián)網(wǎng)物聯(lián)網(wǎng)

2020-07-12 15:18:38

物聯(lián)網(wǎng)傳感器技術(shù)

2020-11-23 08:13:27

物聯(lián)網(wǎng)

2014-10-29 10:33:46

物聯(lián)網(wǎng)

2022-11-02 10:59:34

2019-11-28 14:11:00

物聯(lián)網(wǎng)網(wǎng)關(guān)物聯(lián)網(wǎng)IOT

2021-12-02 18:18:21

消費網(wǎng)關(guān)工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)物聯(lián)網(wǎng)

2023-09-19 16:10:28

2023-10-20 13:43:16

2019-09-10 13:39:38

物聯(lián)網(wǎng)網(wǎng)關(guān)物聯(lián)網(wǎng)IOT

2021-01-12 09:51:43

工業(yè)物聯(lián)網(wǎng)物聯(lián)網(wǎng)網(wǎng)關(guān)物聯(lián)網(wǎng)

2021-01-07 07:15:27

工業(yè)物聯(lián)網(wǎng)物聯(lián)網(wǎng)網(wǎng)關(guān)物聯(lián)網(wǎng)
點贊
收藏

51CTO技術(shù)棧公眾號

国产精品第一页在线| 欧美岛国在线观看| 亚洲精品视频一二三| 在线免费观看一级片| 欧美激情日韩| 精品视频www| 日韩中文字幕a| 欧美卡一卡二| 91理论电影在线观看| 国产精品香蕉国产| 日本少妇性生活| 国产亚洲欧美日韩在线观看一区二区 | 亚洲韩日在线| 日韩最新在线视频| 91丨porny丨对白| 欧美美女福利视频| 精品福利在线看| 97精品国产97久久久久久粉红| 亚洲色偷精品一区二区三区| 精品无人码麻豆乱码1区2区| 日本视频久久久| 免费在线观看日韩| 日本久久精品| 日韩黄色高清视频| 韩国三级hd中文字幕有哪些| 日韩精品麻豆| 精品美女永久免费视频| 天堂av免费看| yes4444视频在线观看| 成人黄色大片在线观看| 成人国产精品日本在线| 精品人妻一区二区色欲产成人| 午夜久久黄色| 久久国产精品首页| 毛片aaaaaa| 亚洲区小说区图片区qvod| 欧美成人精品福利| 九九九九九九九九| 国产a亚洲精品| 色天使色偷偷av一区二区| 国产96在线 | 亚洲| 亚洲色图13p| 亚洲欧美色图视频| 日韩理论电影中文字幕| 亚洲第一区第一页| wwwxxxx在线观看| 警花av一区二区三区| 欧美日韩和欧美的一区二区| 丁香啪啪综合成人亚洲| 男女羞羞在线观看| 欧美日韩国产页| 波多野结衣乳巨码无在线| av在线理伦电影| 亚洲自拍偷拍麻豆| 成人免费a级片| 麻豆蜜桃在线| 黄色精品在线看| 少妇无码av无码专区在线观看| 影院在线观看全集免费观看| 一区二区三区四区国产精品| 91嫩草国产丨精品入口麻豆| 综合久久2o19| 亚洲一区二区三区三| 欧日韩免费视频| 国产ktv在线视频| 欧美丝袜一区二区| 少妇高潮毛片色欲ava片| a国产在线视频| 欧美性生交大片免费| 欧美三级午夜理伦三级| 午夜无码国产理论在线| 欧美日韩国产一级| 中文字幕色网站| 91精品啪在线观看国产爱臀| 亚洲经典中文字幕| 自拍偷拍亚洲天堂| 91嫩草亚洲精品| 欧美激情视频一区二区| 日韩欧美亚洲视频| 久久天堂成人| 91欧美精品午夜性色福利在线| 国内精品久久久久久久久久久 | 中文字幕乱码一区| 在线亚洲a色| 色悠悠久久久久| 日本一级二级视频| 国产日韩免费| 成人妇女免费播放久久久| 日本高清视频网站| 欧美国产精品中文字幕| 波多野结衣与黑人| 国产伦精品一区二区三区视频金莲| 欧美午夜精品理论片a级按摩| 五月天婷婷影视| 欧美美女在线直播| 综合网中文字幕| 久久精品国产亚洲av麻豆色欲 | 免费黄频在线观看| 日韩欧美黄色| 久久影院免费观看| 91video| 国产毛片精品视频| 久久综合狠狠综合久久综青草 | 欧美激情视频网站| 一区二区乱子伦在线播放| 国产激情一区二区三区| 欧洲精品亚洲精品| 91福利在线免费| 欧美巨大另类极品videosbest | 91亚洲一区| 91国自产精品中文字幕亚洲| 一二三区在线播放| heyzo一本久久综合| 综合久久国产| 亚洲1234区| 精品国产1区二区| 99国产精品无码| 欧美亚洲一级| 国产欧美日本在线| 成人区精品一区二区不卡| 色素色在线综合| av2014天堂网| 伊人久久久大香线蕉综合直播| 国产欧美一区二区三区视频 | 91免费观看在线| 九一免费在线观看| 四虎精品一区二区免费| 国产亚洲欧美日韩美女| 在线观看免费国产视频| 国产白丝精品91爽爽久久| 亚洲国产精品一区在线观看不卡| 日韩在线伦理| 亚洲高清久久网| 久久久久久免费观看| 韩国女主播成人在线| 水蜜桃亚洲精品| 免费欧美电影| 亚洲色图国产精品| 精品不卡一区二区| 久久女同性恋中文字幕| 精品国产一二三四区| 欧美xxxx在线| 国产91精品黑色丝袜高跟鞋| 天天操天天射天天舔| 亚洲动漫第一页| 中文字幕人妻熟女在线| 国产综合色产| 国产伦精品一区二区三区四区视频 | 欧美激情xxxxx| 国产xxxx孕妇| 亚洲精品写真福利| 乳色吐息在线观看| 国产精品国码视频| 国产精品一区二区欧美| www.8ⅹ8ⅹ羞羞漫画在线看| 亚洲精品一区二区三区在线观看| 日本熟女一区二区| 99久久精品国产网站| 青青艹视频在线| 亚洲精品中文字幕99999| 668精品在线视频| 日本成人一区| 在线日韩国产精品| 成年人视频软件| 精品一区二区免费视频| 黄色网络在线观看| 国产精品qvod| 午夜精品在线视频| 欧美精品a∨在线观看不卡| 欧美性做爰猛烈叫床潮| 国产黄色录像片| 国产成人免费av在线| 男人的天堂狠狠干| 深爱激情综合| 成人欧美一区二区三区黑人孕妇| 色a资源在线| 日韩精品视频在线观看免费| 波多野结衣电车| 亚洲日本在线a| 女同性恋一区二区三区| 日韩在线一区二区三区| 艳母动漫在线免费观看| 懂色av一区二区| 日韩美女中文字幕| 在线网址91| 精品视频一区在线视频| 一级成人免费视频| 午夜不卡在线视频| 亚洲综合欧美综合| 丁香婷婷综合激情五月色| 一本久道中文无码字幕av| 在线精品国产| 欧洲一区二区在线| 亚洲午夜免费| 国产美女精品视频| www成人免费观看| 日韩最新中文字幕电影免费看| 开心激情综合网| 欧美日韩一级黄| 久久不卡免费视频| 日韩理论片网站| 在线免费看黄视频| 成人一级黄色片| 亚洲国产日韩欧美在线观看| 亚洲精品美女| 亚洲免费视频播放| 成人久久一区| 免费日韩av电影| 一区三区自拍| 成人亚洲激情网| 久久精品女人天堂av免费观看| 欧美日韩爱爱视频| 91网页在线观看| 亚洲第一综合天堂另类专| 一本一道精品欧美中文字幕| 色狠狠综合天天综合综合| 九九热国产在线| 国产精品国产馆在线真实露脸| 久久丫精品国产亚洲av不卡| 国产精品亚洲一区二区三区妖精| 牛夜精品久久久久久久| 午夜亚洲伦理| 成人免费播放器| 欧美va天堂在线| 中文字幕中文字幕在线中心一区| 国产毛片一区二区三区| 国产在线精品二区| 91欧美日韩在线| 91网站免费看| 在线不卡一区| 91精品国产综合久久久久久蜜臀| 欧美黄色三级| 日韩av片永久免费网站| 深夜成人在线| 91精品国产91久久久久久吃药| 欧美aaaxxxx做受视频| 久久综合久久美利坚合众国| 黄色网址在线免费播放| 俺也去精品视频在线观看| 欧美精品日韩少妇| 在线亚洲欧美视频| 不卡在线视频| 一区二区在线视频播放| 成人18在线| 日韩资源在线观看| 久cao在线| 欧美日韩aaaa| xxx性欧美| 97精品视频在线| 欧美18—19sex性hd| 日本精品性网站在线观看| 欧美7777| 国产精品永久免费视频| 四虎国产精品免费久久| 亚洲一区久久久| 伊人久久大香线蕉av超碰| 国产精品一区免费观看| 无码日韩精品一区二区免费| 欧美二级三级| 成人情趣视频| 国产成人三级视频| 韩日在线一区| 欧美 日韩 国产一区| 日日欢夜夜爽一区| 182午夜在线观看| 国产乱码一区二区三区| 特级特黄刘亦菲aaa级| 99国产精品99久久久久久| 亚洲午夜久久久久久久久红桃| 国产欧美一区二区精品性色超碰| 精品在线观看一区| 一区二区三区在线播| 国产成人一区二区三区影院在线| 一本久久a久久精品亚洲| 中文字幕人妻色偷偷久久| 日韩三级.com| 男男激情在线| 久久国产天堂福利天堂| 黄色视屏在线免费观看| 国产精品永久免费| 北条麻妃一区二区三区在线观看 | 久久视频国产| 91午夜在线观看| 日韩av在线发布| 欧美人与性动交α欧美精品| 久久综合久久99| 99精品中文字幕| 午夜精品久久久久久久久久 | 久久精品一区二区三区四区五区| 亚洲国产精品一区二区www| 波多野结衣午夜| 日韩欧美黄色影院| 精品久久久久一区二区三区| 久久色在线播放| 成人性生活视频| 91久久偷偷做嫩草影院| 美女久久久久| 亚洲中文字幕无码一区二区三区| 美女黄网久久| 色哟哟网站在线观看| 欧美激情一区二区三区不卡| 国产在线一区视频| 在线电影院国产精品| 日韩a在线观看| 欧美大荫蒂xxx| 色狠狠一区二区三区| 久久久久久九九九九| 欧美在线国产| 人人干人人干人人| 99精品在线观看视频| h色网站在线观看| 欧美综合久久久| 亚洲人午夜射精精品日韩| 萌白酱国产一区二区| 国产精品久久亚洲不卡| 国内精品二区| 欧美日本一区二区视频在线观看 | 日韩在线视频免费观看高清中文| wwww亚洲| av免费观看久久| 国产精品99一区二区三| 日韩欧美在线免费观看视频| www.亚洲国产| 国产一级做a爰片在线看免费| 7777精品伊人久久久大香线蕉| 国产高清自拍视频在线观看| 青草热久免费精品视频| 欧美黄色录像| 欧美乱大交xxxxx潮喷l头像| 国产成人午夜高潮毛片| 希岛爱理中文字幕| 欧美二区三区91| 国产精品久久午夜夜伦鲁鲁| 日本精品在线免费观看| 一本大道久久精品懂色aⅴ| 午夜精品久久久久久久91蜜桃| 精品在线亚洲视频| aaaa黄色片| 亚洲国产美国国产综合一区二区| 国产女人18毛片水真多| 日日摸夜夜添一区| 99久久婷婷国产综合精品首页| 免费观看成人高| 亚洲制服av| 最新在线黄色网址| 偷窥国产亚洲免费视频| 人人妻人人澡人人爽人人欧美一区| 欧美日韩国产第一页| 国产情侣一区在线| 奇米777四色影视在线看| 国产乱码精品一区二区三| 亚洲女人久久久| 欧美一区二区三区四区高清| av免费在线免费观看| 亚洲一区精品电影| 亚洲午夜伦理| 欧美无人区码suv| 日韩欧美精品中文字幕| 国产一级在线观看| 国产精品三级网站| 国产精品99久久久久久动医院| 一级黄色片国产| 一区二区高清在线| 手机看片国产1024| 欧美在线中文字幕| 不卡一区2区| 亚洲综合123| 亚洲国产成人av网| 日本私人网站在线观看| 国产精品精品一区二区三区午夜版 | 99久久人妻精品免费二区| 欧美性猛交xxx| 在线国产91| 国产精华一区| 久久午夜影视| 内射一区二区三区| 亚洲精品国产品国语在线| 99re66热这里只有精品4| 手机福利在线视频| 国产91富婆露脸刺激对白| 午夜毛片在线观看| 伊人男人综合视频网| 精品中文字幕一区二区三区| 国产精品国产亚洲精品看不卡| 久久久精品天堂| 精品国产999久久久免费| 欧美性资源免费| 1024精品久久久久久久久| 亚洲欧美日韩精品一区| 天天色天天操综合| 久操免费在线| 欧美二区在线看| 国产原创一区二区三区| 男女啊啊啊视频| 精品国偷自产在线视频99| 精品国产一区二区三区成人影院| 亚洲欧美在线精品| 亚洲妇女屁股眼交7| 日本福利专区在线观看| 精品乱码一区|