黄p网站_在线看中文字幕_亚洲电影免费观看_成人激情视频_欧美成视频_中国av在线

全局事件

bootstrap 事件

bootstrap 事件允許在框架未初始化之前,先進行初始化其他需要的業務代碼。該事件是在 EasySwoole 3.2.5版本之后 新增的。

在框架安裝之后產生的 easyswoole 啟動腳本文件中,將會自動判斷框架根目錄下是否有 bootstrap.php 文件,如果有則加載此文件。

目前框架最新版本的 bootstrap.php(即 bootstrap 事件)會在框架安裝時在項目根目錄中自動生成。所以如果用戶想要執行自己需要的初始化業務代碼:如 注冊命令行支持、全局通用函數、啟動前調用協程 API等功能,就可以在 bootstrap.php 中進行編寫實現。

注:EasySwoole 3.4.x 版本之前 bootstrap.php 文件需要用戶在項目根目錄下自行創建該文件 bootstrap.php。

注:如果你是框架舊版升級到框架新版,需要刪除框架根目錄的 easyswoole 文件,然后重新運行 php ./vendor/easyswoole/easyswoole/bin/easyswoole install 進行重新安裝(報錯或者其他原因請重新看 框架安裝章節-執行安裝步驟),重新安裝完成之后,即可正常使用 bootstrap 事件

在框架啟用前(在 bootstrap 事件中)調用協程 API

開發者在 EasySwoole 主服務啟動前調用協程 api,必須使用如下操作:

$scheduler = new \Swoole\Coroutine\Scheduler();
$scheduler->add(function() {
    /* 調用協程API */
});
$scheduler->start();
// 清除全部定時器
\Swoole\Timer::clearAll();

具體使用示例如下:

<?php
// 全局 bootstrap 事件
date_default_timezone_set('Asia/Shanghai');

use Swoole\Coroutine\Scheduler;
$scheduler = new Scheduler();
$scheduler->add(function() {
    /* 調用協程 API */
});
$scheduler->start();
// 清除全部定時器
\Swoole\Timer::clearAll();

initialize 事件

框架初始化事件,在執行 initialize 初始化事件時,EasySwoole 框架此刻已經完成了如下工作:

  • 加載配置文件
  • 初始化 Log/Temp 目錄,完成系統默認 Log/Temp 目錄的定義

函數原型

public static function initialize(): void
{
}

開發者自定義處理

開發者可以在 initialize 事件可以進行如下修改:

  • 修改框架默認使用的 error_report 級別,使用自定義的 error_report 級別
  • 修改框架默認使用的 Logger 處理器,使用自定義的 Logger 處理器
  • 修改框架默認使用的 Trigger 處理器,使用自定義的 Trigger 處理器
  • 修改框架默認使用的 Error 處理器,使用自定義的 Error 處理器
  • 修改框架默認使用的 Shutdown 處理器,使用自定義的 Shutdown 處理器
  • 修改框架默認使用的 HttpException 全局處理器,使用自定義的 HttpException 全局處理器
  • 設置 Http 全局 OnRequestAfterRequest 事件
  • 注冊數據庫、Redis 連接池

具體可查看 SysConst.php

使用示例代碼:

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        // TODO: Implement initialize() method.
        date_default_timezone_set('Asia/Shanghai');

        // 開發者自定義設置 錯誤級別
        \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::ERROR_REPORT_LEVEL, E_ALL);

        // 開發者自定義設置 日志處理類(該類需要實現 \EasySwoole\Log\LoggerInterface,開發者可自行查看并實現,方便開發者自定義處理日志)
        $logDir = EASYSWOOLE_LOG_DIR; // 定義日志存放目錄
        $loggerHandler = new \EasySwoole\Log\Logger($logDir); // 定義日志處理對象
        \EasySwoole\Component\Di::getInstance()->set(SysConst::LOGGER_HANDLER, $loggerHandler);

        // 開發者自定義設置 Trace 追蹤器(該類需要實現 \EasySwoole\Trigger\TriggerInterface,開發者可自行查看并實現,方便開發者自定義處理 Trace 鏈路)
        // Trace 追蹤器需要依據上面的 logger_handler
        \EasySwoole\Component\Di::getInstance()->set(SysConst::TRIGGER_HANDLER, new \EasySwoole\Trigger\Trigger($loggerHandler));

        // 開發者自定義設置 error_handler
        \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::ERROR_HANDLER, function ($errorCode, $description, $file = null, $line = null) {
            // 開發者對錯誤進行處理
        });

        // 開發者自定義設置 shutdown
        \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::SHUTDOWN_FUNCTION, function () {
            // 開發者對 shutdown 進行處理
        });

        // 開發者自定義設置 HttpException 全局處理器
        \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_EXCEPTION_HANDLER, function ($throwable, Request $request, Response $response) {
            $response->withStatus(\EasySwoole\Http\Message\Status::CODE_INTERNAL_SERVER_ERROR);
            $response->write(nl2br($throwable->getMessage() . "\n" . $throwable->getTraceAsString()));
            Trigger::getInstance()->throwable($throwable);
        });

        // 開發者自定義設置 onRequest v3.4.x+
        \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_ON_REQUEST, function (\EasySwoole\Http\Request $request, \EasySwoole\Http\Response $response) {
            // v3.4.x 之前的版本 onRequest 事件在 EasySwoolEvent.php 中已定義,不必重新設置
        });

        // 開發者自定義設置 afterRequest v3.4.x+
        \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_AFTER_REQUEST, function (\EasySwoole\Http\Request $request, \EasySwoole\Http\Response $response) {
            // v3.4.x 之前的版本 afterRequest 事件在 EasySwoolEvent.php 中已定義,不必重新設置
        });

        // 注冊數據庫連接及連接池(詳見:http://m.edpy57.cn/Components/Orm/install.html)
        // 注冊 Redis 連接及連接池(詳見:http://m.edpy57.cn/Components/Redis/introduction.html)
    }

    public static function mainServerCreate(EventRegister $register)
    {

    }
}

啟用前(在 initialize 事件中)調用協程 API

開發者在 EasySwoole 主服務啟動前調用協程 api,必須使用如下操作:

$scheduler = new \Swoole\Coroutine\Scheduler();
$scheduler->add(function() {
    /* 調用協程API */
});
$scheduler->start();
// 清除全部定時器
\Swoole\Timer::clearAll();

具體使用示例:

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        // TODO: Implement initialize() method.
        date_default_timezone_set('Asia/Shanghai');

        $scheduler = new \Swoole\Coroutine\Scheduler();
        $scheduler->add(function() {
            /* 調用協程API */
        });
        $scheduler->start();
        // 清除全部定時器
        \Swoole\Timer::clearAll();
    }

    public static function mainServerCreate(EventRegister $register)
    {

    }
}

在 initialize 事件中調用連接池

initialize 事件在 EasySwoole 生命周期中屬于 主進程,因此在主進程中創建了連接池可能會導致以下問題:

  • 創建了全局的定時器
  • 創建了全局的 EventLoop
  • 創建的連接被跨進程公用,因此我們以服務啟動前調用數據庫 ORM 為例:

服務啟動前調用數據庫 ORM

下文 \EasySwoole\EasySwoole\Config::getInstance()->getConf('MYSQL') 獲取的 MYSQL 配置,詳細參考 配置文件

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        // TODO: Implement initialize() method.
        date_default_timezone_set('Asia/Shanghai');
        $config = new \EasySwoole\ORM\Db\Config(\EasySwoole\EasySwoole\Config::getInstance()->getConf('MYSQL'));
        \EasySwoole\ORM\DbManager::getInstance()->addConnection(new \EasySwoole\ORM\Db\Connection($config));
        // 創建一個協程調度器
        $scheduler = new \Swoole\Coroutine\Scheduler();
        $scheduler->add(function () {
            $builder = new \EasySwoole\Mysqli\QueryBuilder();
            $builder->raw('select version()');
            \EasySwoole\ORM\DbManager::getInstance()->query($builder, true);
            // 這邊重置 ORM 連接池的 pool,避免連接被克隆到子進程,造成連接跨進程公用。
            // DbManager 如果有注冊多庫連接,請記得一起 getConnection($name) 獲取全部的 pool 去執行 reset
            // 其他的連接池請獲取到對應的 pool,然后執行 reset() 方法

            // ORM 1.4.31 版本之前請使用 getClientPool() 
            // DbManager::getInstance()->getConnection()->getClientPool()->reset();
            \EasySwoole\ORM\DbManager::getInstance()->getConnection()->__getClientPool()->reset();
        });
        //執行調度器內注冊的全部回調
        $scheduler->start();
        //清理調度器內可能注冊的定時器,不要影響到swoole server 的event loop
        \Swoole\Timer::clearAll();
    }

    public static function mainServerCreate(EventRegister $register)
    {

    }
}

mainServerCreate 事件(即主服務創建事件)

函數原型

/**
 * @param \EasySwoole\EasySwoole\Swoole\EventRegister $register
 */
public static function mainServerCreate(EventRegister $register)
{

}

已完成工作

在執行主服務創建事件時,框架此時已經完成的工作有:

  • bootstrap/initialize 事件加載完成
  • SwooleServer 創建成功
  • SwooleServer 注冊了默認的 onRequest/onWorkerStart/onWorkerStop/onWorkerExit 事件。

開發者可進行的操作有:

  • 注冊主服務回調事件
  • 添加子服務監聽
  • SwooleTable/Atomic
  • 創建自定義進程
  • 啟用前(在 mainServerCreate 事件中)調用協程 API

注冊主服務回調事件

例如:為主服務注冊 onWorkerStart 回調事件:

/** @var \EasySwoole\EasySwoole\Swoole\EventRegister $register **/
$register->add($register::onWorkerStart, function (\Swoole\Server $server,int $workerId){
     var_dump($workerId . 'start');
});

例如:為主服務增加 onMessage 回調事件(前提是主服務類型為 WebSocket 服務):

// 給 server 注冊相關事件,在 WebSocket 服務模式下 message 事件必須注冊 
/** @var \EasySwoole\EasySwoole\Swoole\EventRegister $register **/
$register->set($register::onMessage,function (\Swoole\WebSocket\Server $server, \Swoole\WebSocket\Frame $frame){

});

set 方法和 add 方法是不同的, set 將會覆蓋之前配置的事件回調, 而 add 是增加一個新的回調。

添加子服務監聽

例如:添加一個 tcp 子服務監聽

/** @var \Swoole\Server\Port $subPort **/
$subPort = \EasySwoole\EasySwoole\ServerManager::getInstance()->getSwooleServer()->addListener('0.0.0.0', 9503, SWOOLE_TCP);
$subPort->on('receive', function (\Swoole\Server $server, int $fd, int $reactor_id, string $data){
    var_dump($data);
});
// 配置 具體查看 Swoole 文檔
$subPort->set([

]);

具體可參考 TCP

Table && Atomic

具體調用方式請看具體章節:

Table

Atomic

創建自定義進程

具體詳細操作可到 基礎使用 -> 自定義進程中查看

\EasySwoole\Component\Process\Manager::getInstance()->addProcess(new Test('test_process'));

TestEasySwoole\Component\Process\AbstractProcess 抽象類的子類

啟用前(在 mainServerCreate 事件中)調用協程 API

開發者在 EasySwoole 主服務啟動前調用協程 api,必須使用如下操作:

$scheduler = new \Swoole\Coroutine\Scheduler();
$scheduler->add(function() {
    /* 調用協程API */
});
$scheduler->start();
// 清除全部定時器
\Swoole\Timer::clearAll();
主站蜘蛛池模板: 欧洲亚洲一区 | 91福利电影在线观看 | h网站在线观看 | 国产精品美女久久久久久免费 | 亚洲国产精品人人爽夜夜爽 | 久久国产婷婷国产香蕉 | 免费a爱片猛猛 | 国产亚洲一区二区三区在线观看 | 欧美另类一二三四 | 一区二区欧美视频 | 色噜噜在线| 在线成人av观看 | 99国产精品99久久久久久 | 日本黄色一级片免费看 | 麻豆专区一区二区三区四区五区 | 在线观看成人网 | 久久国产婷婷国产香蕉 | 拍真实国产伦偷精品 | 婷婷91| 久久99精品久久久久久园产越南 | 免费黄色在线 | 亚洲性在线| 精品视频在线播放 | 亚洲动漫在线观看 | 91精品国产欧美一区二区成人 | 亚洲精品成人 | av黄色一级片| 亚洲www视频 | 国产精品高潮呻吟久久av野狼 | 三级无遮挡污在线观看 | 成年人视频免费在线看 | 国产亚洲成av人片在线观看桃 | 国产精品成人在线观看 | 黄色一级毛片在线观看 | 欧美日韩一区二区三区四区 | 免费国产在线视频 | 四虎久久 | 国产一二区在线观看 | 黄色av免费看 | 国产一二区在线观看 | 午夜免费观看视频 | 亚洲网站在线观看 | 伊人天堂在线 | 国产区视频在线观看 | 超碰在线一区二区三区 | 久久久久久国产视频 | 久久久一区二区 | 在线视频 欧美日韩 | 日本三级视频 | 久久99久久98精品免观看软件 | 日本综合久久 | gav成人免费播放视频 | 一区二区三区免费 | 免费国产一区 | 99在线免费视频 | h视频在线免费观看 | 精品成人网 | 亚洲成人av在线播放 | 97免费在线观看视频 | 欧美综合一区二区 | 欧美成年黄网站色视频 | 日韩欧美在线播放 | 欧美激情免费 | 亚洲视频综合 | 国产精品视频一区二区三区不卡 | 久久精品亚洲一区二区 | 91精品国产综合久久久久久 | 日韩一区欧美一区 | 日本中文字幕在线观看 | 综合色九九 | 99久久婷婷国产综合精品 | 天堂一区二区三区 | 福利视频网址导航 | 午夜免| 国产精品影院在线观看 | 久久91精品 | 欧美一区二区三区电影 | 精品国产一级片 | 国产九九九 | 免费在线黄色电影 | 日本精品在线观看 | 五月婷婷天 | 中文成人在线 | 久久精品性视频 | 91精品国产aⅴ| 久久精品| 亚洲精品一区在线观看 | 成人一区在线观看 | 亚洲成人日韩 | av在线播放网站 | 日韩欧美在线观看视频网站 | www.久久久久久久久久久久 | 久久美女 | 欧美一级二级片 | 日韩欧美在线观看一区二区 | 国产电影一区二区三区图片 | 日韩欧美亚洲 | 最新中文字幕在线资源 | 亚洲男人天堂网 | 色婷婷欧美| 玖玖爱视频在线 | 欧美一级播放 | 日韩欧美三区 | 欧美一区视频 | 91久久极品 | 欧美性猛交一区二区三区精品 | av久久| 欧美激情小视频 | 一区二区三区免费在线观看 | 国产精品成人在线视频 | 国产成人免费视频网站视频社区 | 视频一区二区三区中文字幕 | 亚洲精品日本 | 日韩在线电影 | 亚洲成av人乱码色午夜 | 狠狠色狠狠色合久久伊人 | av天天网| 日本视频二区 | 色视频网站在线观看 | 亚洲精品99| 精品国产乱码久久久久久88av | 国产一区二区三区精品久久久 | 日韩一区二区三区精品 | 亚洲福利一区 | 天堂√在线观看一区二区 | 久久国内精品 | 国产精品成人在线观看 | 国产亚洲欧美精品永久 | 国产成人av在线播放 | 亚洲欧洲久久 | 人人射 | 日韩欧美在线视频 | 亚洲激情网站 | 91免费网 | 九九九视频精品 | 久久久久综合狠狠综合日本高清 | 色综合中文 | 亚洲男人天堂网 | 成人一区二区三区 | 日本一级淫片免费看 | 这里有精品视频 | 欧美视频区 | 亚洲成人免费 | 国产精品一区在线观看 | 成人在线观看一区 | 中国免费看的片 | 精品国产一级片 | 成人天堂噜噜噜 | 羞羞的视频网站 | a级毛片免费高清视频 | 国产成人 综合 亚洲 | 国产精品久久久久久久久 | 五月天婷婷国产精品 | 亚洲深深色噜噜狠狠网站 | 久久这里有精品 | 国外成人在线视频网站 | 久久九| 成人欧美一区二区三区在线观看 | 成人天堂资源www在线 | 日韩欧美在线视频 | 日韩精品在线观看视频 | 先锋av资源在线 | 亚洲成人精品久久久 | 色综合中文 | 午夜视频在线观看网站 | 北条麻妃一区二区三区中文字幕 | 国产成人免费在线观看 | 亚洲综合精品视频 | 一区二区三区高清不卡 | 日韩中文字幕在线播放 | 中文字幕一二三区 | 国产精品久久久久影院色老大 | 美女视频一区 | 日本一区二区三区四区视频 | 亚洲精品一区二区三区在线播放 | 久久久网 | 四虎网址 | 91精品久久久久久久久中文字幕 | 黄色一级片在线观看 | 成人av网页 | 日韩欧美中文字幕在线视频 | 日本天天操| 三级欧美在线观看 | 成人久久精品 | 亚洲免费在线播放 | 久久国产精品久久久久久电车 | 中文字幕一二三区 | 欧美日韩电影一区二区三区 | 国产精品久久久久久久久久新婚 | 狠狠操夜夜操天天操 | 老牛影视av一区二区在线观看 | 国产伦精品一区二区三区四区视频 | 一区二区日本 | 国产三区精品 | 亚洲黄色片免费 | 国产高清在线精品一区二区三区 | 久久精品无码一区二区日韩av | 久久综合久 | 成人一区二区三区在线观看 | 国产精品不卡视频 | 日韩三级在线免费 | 日本免费三片免费观看 | 女同理伦片在线观看禁男之园 | www.久久 | 中文字幕三区 | 国产人体视频 | 吴梦梦到粉丝家实战华中在线观看 | 亚洲成人综合网站 | 三级无遮挡污在线观看 | 日韩在线字幕 | 成人欧美一区二区三区在线播放 | 欧美一级免费 | 久久99精品一区二区三区三区 | 天天天操 | 国产小视频网站 | 不卡的毛片| 国精产品一区二区三区 | 欧洲成人午夜免费大片 | 久久99久久99精品免视看婷婷 | 日韩欧美一级二级 | 超碰97人人人人人蜜桃 | 日夜夜精品视频 | 中文字幕在线免费看 | 在线播放国产一区二区三区 | 久久久久久日产精品 | 亚洲精品a区 | 久久久精品国产 | 国产精品成人在线 | 欧美三级视频 | 久久久久国产精品午夜一区 | 国产精品久久久久毛片软件 | 精品av| 色综合欧美 | 精品久久久久久国产 | 欧美一区二区三区在线 | 殴美一区| 91精品国产综合久久久久久漫画 | 精品国产伦一区二区三区观看说明 | 亚洲成人精品av | 免费看的黄色 | 日韩第一区 | 日韩欧美一区二区视频 | 色优久久 | 成人免费视频观看视频 | 91精品久久久久久久久久 | a国产在线观看 | 日韩综合| 日韩精品免费观看 | 亚洲国产视频一区 | 视频一区二区三区在线播放 | 午夜免费观看网站 | 欧美日本免费一区二区三区 | 视频一区在线播放 | 中文字幕在线第一页 | 欧美激情国产日韩精品一区18 | 日韩免费网站 | 天天天天综合 | 国产成人免费视频 | 91免费视频观看 | www.福利视频| 日韩免费在线观看视频 | 国产人妖一区 | 久久蜜桃av一区二区天堂 | 国产欧美精品一区二区三区四区 | 中文字幕最新在线 | 色吟av | 一区二区三区四区在线 | 在线免费观看黄 | 亚洲最大免费视频 | 亚洲欧美精品一区二区三区 | 黄色电影在线免费观看 | 日韩av免费在线观看 | 国产精品久久久久无码av | 中文字幕亚洲在线 | www日韩| 亚洲成人在线视频网站 | 成人深夜小视频 | 天堂一区| 91av导航 | 国产在线资源 | 亚洲成人久久久 | 99精品久久久久久久免费看蜜月 | 琪琪午夜伦伦电影福利片 | 久草在线免费福利资源 | 欧美精品久久久久久久久久丰满 | 亚洲精品久久久久久下一站 | 欧美日韩在线免费观看 | 久久精品1区2区 | 亚洲一区二区三区在线视频 | 亚洲精品国产二区 | 一区二区精品 | 九色av | 日日爱视频| 亚洲一区二区三区四区在线观看 | 超碰偷拍| 在线观看欧美一区二区三区 | 国产欧美一区二区精品性色 | 久在线草 | 亚洲一区二区三区免费在线 | 欧美一区二区三区在线观看 | 国产精品无码永久免费888 | 亚洲一区二区三区爽爽爽爽爽 | www日本高清 | 精品视频久久久 | 国产精品无码永久免费888 | 午夜av毛片 | 日韩欧美国产一区二区 | 四虎黄色网 | 7777av | 国产一区2区 | 四虎小视频 | 国产一区二区三区免费 | 色黄网站 | 国产精品高清在线 | 亚洲免费影院 | 伊人网网站 | 日韩一区在线播放 | 国产成人精品一区二区三区视频 | 久久精品欧美一区二区三区不卡 | 国产欧美在线观看 | 久久久久久亚洲精品视频 | 亚洲精品视频免费观看 | 成人在线视频一区二区 | 午夜妇女aaaa区片 | 性视频网站免费 | 中文字幕网在线 | 日韩欧美一区二区三区 | 性视频网站免费 | 4h影视| 欧美成年黄网站色视频 | 国产成人精品久久 | 日韩精品视频在线观看免费 | 欧美日韩视频 | 天堂资源在线 | 成人一区二区三区在线观看 | 国产精品视频免费 | 丁香婷婷久久久综合精品国产 | 99热这里有精品 | 欧美福利在线 | 国产高清在线精品一区二区三区 | 日韩精品一区二区三区在线 | 国产高清自拍 | 亚洲一区二区三区四区在线 | 操操操操操操 | 亚洲国产精品成人综合色在线婷婷 | 午夜免费小视频 | 国产裸体永久免费视频网站 | 91精品国产欧美一区二区成人 | av毛片在线免费看 | 久久首页 | 国产精品一区二区久久 | 国产一级二级毛片 | 四色成人av永久网址 | www.一区 | 黄色一级片| 色综合一区二区三区 | 精品久久久久久亚洲精品 | 欧美一级片在线 | 伊人网亚洲| 久久视频精品 | 久久久精品亚洲 | 国产人久久人人人人爽 | 男女黄色免费网站 | 韩国精品| 免费国产wwwwwww网站 | 欧美一级淫片免费视频黄 | 免费观看一级特黄欧美大片 | 亚洲欧洲在线观看 | 日韩欧美一区二区三区视频 | 久99视频 | 久草视 | 精品国产乱码久久久久久久软件 | 色呦呦日韩 | 在线观看欧美日韩视频 | 91在线免费看 | 亚洲另类视频 | 亚洲一区中文字幕 | 免费视频一区二区 | 亚洲精品久久久一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 青青草久草在线 | 国产成人午夜高潮毛片 | 国产在线精品一区 | 日韩av在线中文字幕 | 天天干天天爱天天 | 成人午夜电影网 | 第一色视频 | 大桥未久亚洲精品久久久强制中出 | 毛片视频播放 | 亚洲永久免费视频 | 国产视频第一页 | 天天干天天操天天爽 | 精品无码久久久久久国产 | 亚洲高清在线 | 亚洲成人福利在线观看 | 91久久久久久久久久久久久久久久 | 免费国产视频 | 欧美激情在线观看 | 久久久久久久久99精品 | 九一视频在线免费观看 | 久久久男人天堂 | 成人免费福利 | 亚洲精品网址 | 国产欧美日韩综合精品一区二区 | 欧美国产精品一区二区 | 国产视频一区二区 | 成人亚洲| 九色porny国模私拍av | 亚洲国产精品久久 | 97色在线视频 | 免费av电影网站 | 亚洲成人精品影视 | 国产欧美日韩精品一区 | 久久久久亚洲视频 | 亚洲午夜精品视频 | 国产精品乱码一区二区三区 | 欧美激情一区二区 | 综合久久久久 | 99久久精品免费看国产四区 | 黄色一级免费大片 | 中文字幕亚洲区 | a级毛片免费高清视频 | 色婷婷网 | 亚洲福利社区 | 亚洲网站免费 | 久久精品网 | 日本一区视频在线观看 | 久久爱综合网 | 午夜激情影院 | 成人欧美一区二区三区在线观看 | 欧美精品片 | 在线成人www免费观看视频 | 国产中文字幕一区 | 精品综合久久 | 国产亚洲精品美女久久久久久久久久 | 黄色片免费看 | 亚洲91精品 | 精品欧美乱码久久久久久1区2区 | 日韩成人在线视频 | www97影院| 亚洲毛片在线观看 | 精品国产黄a∨片高清在线 99热婷婷 | 九九99| 亚洲精品午夜aaa久久久 | 欧美猛交ⅹxxx乱大交视频 | 国产精品久久久久久久久久久久久 | 国产精品视屏 | 日韩在线免费 | 亚洲精品视频在线 | 在线播放亚洲 | 99在线观看 | 国产精品久久久久久亚洲调教 | 午夜精品导航 | 亚洲一区欧美 | 亚洲色图在线播放 | 精品毛片| 成人高清在线 | 国产精品免费观看 | 蜜桃免费一区二区三区 | 亚洲高清一区二区三区 | 日本在线观看 | 欧美78videosex性欧美 | 亚洲福利在线观看 | 亚洲国产激情 | 精品一区二区三区免费 | 在线欧美亚洲 | 日韩一级视频 | 国产精品三级视频 | 三级av| 国产真实乱全部视频 | 国产成人午夜精品5599 | 涩涩视频在线观看 | 久久这里只有国产精品 | 日韩中文不卡 | 视色视频在线观看 | 久久精品99国产精品日本 | 久久久久9999国产精品 | 日日爱夜夜爱 | 精品成人免费一区二区在线播放 | 99久久夜色精品国产亚洲1000部 | 九九色综合 | 国产免费一区二区 | 超碰在线91 | 91电影在线看| 中文字幕在线观看第一页 | 中文字幕亚洲在线观看 | 国产69精品久久久久观看黑料 | 午夜在线视频免费观看 | 亚洲精品在 | 激情开心成人网 | 你懂的免费在线观看 | 91精品国产福利在线观看 | 精品一区二区久久久久久久网站 | 狠狠艹视频 | 一区二区三区不卡视频 | 欧美综合在线观看 | 久久九九国产精品 | 奇米影视奇米色777欧美 | 国产精品久久久爽爽爽麻豆色哟哟 | 日韩精品一区二区在线观看视频 | 亚洲第一精品在线 | 成人亚洲一区二区 | 精品亚洲一区二区三区 | 91一区二区在线 | 免费视频爱爱太爽了 | 国产欧美日韩综合精品一区二区 | 国产激情视频在线 | 亚洲第一中文字幕 | 国产在线观看欧美 | 欧美视频一区二区三区在线观看 | 在线观看国产视频 | 国产视频网 | 热久久久 | 一区二区精品 | 国产精品11 | 黑人av| 精品一区久久 | 欧美日韩国产一区二区三区不卡 | 亚洲一区综合 | 久久久久久久久久穴 | 奇米在线777 | 一级a性色生活片久久毛片波多野 | 人人艹人人爽 | jizz中国日本 | 夜夜av| 免费看一区二区三区 | 欧美一区二区三区在线观看视频 | 99久久这里只有精品 | 日韩一级 | 亚洲天堂色2017 | 91视频日韩 | 成人h动漫免费观看网站 | 国产成人精品一区二区三区 | 毛片毛片毛片 | 天天看天天爽 | 欧美二区三区 | 午夜精品久久久久久99热软件 | 日韩精品视频久久 | 亚洲一区二区三区四区五区中文 | 草久在线视频 | 一级黄色毛片a | 在线观看国产精品一区二区 | 99re6热在线精品视频播放 | 超碰在线9 | hitomi一区二区三区精品 | 久久99国产精品 | www.久久精品 | www.一区 | 日韩在线观看精品 | 日韩欧美在线视频 | 国产综合视频 | 精品在线一区二区 | 日韩欧美国产一区二区三区 | 久久综合狠狠综合久久综合88 | 男人亚洲天堂网 | 一色屋精品久久久久久久久久 | 亚洲视频免费观看 | 欧美日韩一区二区三区在线观看 | 精品国产三级a在线观看 | 亚州精品成人 | 精品超碰 | 天天干天天爱天天 | 五月婷婷综合激情网 | 欧美成人精品激情在线观看 | 午夜精品久久久久久久久 | 国产日韩欧美视频 | 亚洲一区二区在线播放 | 国产欧美综合一区二区三区 | 国产精品成人国产乱一区 | 99精品热| 久久国产经典视频 | 久久久国产精品 | 91在线国产观看 | 99热婷婷| 一级片福利 | 国产成人精品久久二区二区91 | 亚洲日本二区 | 在线中文字幕日韩 | 国产精品国产三级国产aⅴ入口 | 99久久精品一区二区成人 | 黄色手机在线观看 | 日本欧美在线观看 | 亚洲高清在线视频 | 国产精品不卡一区 | 亚洲综合首页 | 欧美国产一区二区三区 | 国产精品美女一区二区三区四区 | 成人h动漫在线看 | 国产精品久久久久久久9999 | 91影院| 四虎精品在线 | 少妇黄色一级片 | 国产精品久久一区二区三区 | 久久人人爽人人爽人人片av不 | 国产中文字幕一区二区三区 | 亚洲欧美v国产一区二区 | 91精品国产91久久久久久久久久久久 | 视频一区二区国产 | 亚洲一区二区三区四区的 | 亚洲精品久久久久久一区二区 | 国产精品久久久99 | 狠狠干av| 男人天堂视频网 | 欧美一级做性受免费大片免费 | 欧美一级欧美三级在线观看 | 四虎影视网址 | 国产精品亚欧美一区二区 | 9999国产精品欧美久久久久久 | 欧美大片黄 | 欧美一二三区在线 | 最近免费中文字幕大全免费版视频 | 欧美一区二区三 | 欧美日韩亚洲一区 | 日韩有码电影 | 91精品国产高清自在线观看 |