コルーチンlaravel5.8に統合Swooleアセンブリ----実装され、クライアントサービス(nginxの設定の章)

  • laravelのプロジェクト構成
あなたが成功して、彼はあなたのlaravelプロジェクトを引き継いでlaravelSコンポーネントをインストールしている場合は、次のステップは、WebSocketのクラスのサーバーを実装することで、
クラス宣言のサービス、プロジェクトのappディレクトリ内のディレクトリ(ない自分では、構築するために)

多分、これらの名前をスペースは、より多くのあなたを驚かせてきたが、実際に彼らはあなたが、インストールクラスの部品を実装するあなたは奇妙に感じないかもしれません、はい、laravelSの成分に由来している
彼らが実行されているネイティブクラスswooleのWebSocketをパッケージ化するに従って、
Hhxsv5のソース空間でのベンダークラスは、スペースをプロジェクトを参照して/ hhxsv5 / laravel-S / SRC / Swoole /コルーチン
<?PHPの
名前空間のApp \サービス。

Hhxsv5 \ LaravelS \ Swoole \ WebSocketHandlerInterfaceを使用します。
照らし\サポート\ファサード\ログを使用します。
Swoole \のHttp \要求を使用します。
Swoole \のWebSocket \フレームを使用します。
Swoole \のWebSocket \ Serverを使用します。
クラスmywebsocketはWebSocketHandlerInterfaceを実装
{

パブリック関数の__construct()
{
ログイン::情報を( 'laravel-swooleのWebSocketを起動します');
}

パブリック関数開く時(サーバーの$サーバ、$リクエストを要求)
{
ログイン::情報( '起動swooleのWebSocket');
$サーバ- >プッシュ($要求- > FD、 '欢迎使用、基于swoole的laravelのWebSocket');
}

パブリック関数のonMessage(サーバー$サーバ、フレーム$フレーム)
{
$サーバー- >プッシュ(。フレーム- $> FD、DATE( 'DH-YMの:I:S') 'あなたの要求に対するサーバの応答');
}

パブリック関数OnCloseの(サーバーサーバー$、$ FD、$ reactorId)
{
ログ::情報( 'オフのWebSocketサーバ');
}
}

その後、あなたはいくつかの構成では、laravels.phpを見つけるためにディレクトリを設定への持っています。

以下の連想配列のキーを検索し、設定を行います

' WebSocketを'                 => [
         ' 有効' => trueに' ハンドラ'のApp \ Servicesの\ => \ mywebsocket :: クラス分類、上記のステートメントは#
         // 'ハンドラは' => XxxWebSocketHandler ::クラス、 
    ]、
'swoole' => [
    ...

    // 每隔 60s 检测一次所有连接,如果某个连接在 600s 内都没有发送任何数据,则关闭该连接
    'heartbeat_idle_time'      => 600,
    'heartbeat_check_interval' => 60,

    ...
],

(未完待续)

 

おすすめ

転載: www.cnblogs.com/saintdingspage/p/11272418.html