Laravelはどのようにswooleでwebsocketアクティブメッセージプッシュを開発します
3731 ワード
需要:クライアントを通じてメッセージを送信する必要がなく、サービス側のmessageで転送されたメッセージを傍受して相対的なビジネスロジックを行う必要がなく、テンプレートメッセージにすべてのメンバーにカスタムメッセージを送信する機能を実現したい.
アクティブメッセージプッシュは、通常、WebSocketサービスを書くためにswooleを採用している場合が最も多く使われているのはopen、message、closeの3つの傍受状態ですが、次のonRequestコールバックの使用は決して見られません.間違いなく、今回のアクティブメッセージプッシュを解決するにはonRequestコールバックが必要です.公式ドキュメント:swoole_だからこそwebsocket_serverはswooleから継承されます.http_serverなので、websocketでonRequestコールバックがあります.
実装の詳細:
前述したのはswooleでのonRequestの実装であり、以下の実装ではコントローラでonRequestコールバックをアクティブにトリガする.実装方法は、私たちがよく知っているcurlリクエストです.
用途onRequestコールバックは、テンプレートメッセージなど、コントローラで呼び出す必要があるプッシュメッセージに特に適しています.もしかすると多くの1-5年開発のPHPプログラマーがここに来て多くの友达がボトルネックに直面して、中高級、アーキテクチャ師に進級したいと思っています!!swooleとlaravel、thinkphp 6を深く学びたいです.swoftマイクロサービスは使用中に多くの困難に直面しています.皆さんが一日も早くPHPアーキテクチャをアップグレードできるように、このPHPアーキテクチャの路線図とアーキテクチャのチュートリアルを参考にして、ここを突き刺してください.
アクティブメッセージプッシュは、通常、WebSocketサービスを書くためにswooleを採用している場合が最も多く使われているのはopen、message、closeの3つの傍受状態ですが、次のonRequestコールバックの使用は決して見られません.間違いなく、今回のアクティブメッセージプッシュを解決するにはonRequestコールバックが必要です.公式ドキュメント:swoole_だからこそwebsocket_serverはswooleから継承されます.http_serverなので、websocketでonRequestコールバックがあります.
実装の詳細:
# laravel Commands
# php artisan swoole start
argument('action');
switch ($arg) {
case 'start':
$this->info('swoole server started');
$this->start();
break;
case 'stop':
$this->info('swoole server stoped');
break;
case 'restart':
$this->info('swoole server restarted');
break;
}
}
/**
* Swoole
*/
private function start()
{
$this->ws = new swoole_websocket_server("0.0.0.0", 9502);
// WebSocket
$this->ws->on('open', function ($ws, $request) {
});
// WebSocket
$this->ws->on('message', function ($ws, $frame) {
$this->info("client is SendMessage
");
});
// WebSocket
$this->ws->on('request', function ($request, $response) {
$scene = $request->post['scene']; //
$this->info("client is PushMessage
".$scene);
});
// WebSocket
$this->ws->on('close', function ($ws, $fd) {
$this->info("client is close
");
});
$this->ws->start();
}
}
前述したのはswooleでのonRequestの実装であり、以下の実装ではコントローラでonRequestコールバックをアクティブにトリガする.実装方法は、私たちがよく知っているcurlリクエストです.
# activepush , cmd
# client is PushMessage
/**
* CURL
* @param $data
*/
public function curl($data)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://127.0.0.1:9502");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_exec($curl);
curl_close($curl);
}
/**
*
*/
public function activepush()
{
$param['scene'] = ' ';
$this->curl($param); //
用途onRequestコールバックは、テンプレートメッセージなど、コントローラで呼び出す必要があるプッシュメッセージに特に適しています.もしかすると多くの1-5年開発のPHPプログラマーがここに来て多くの友达がボトルネックに直面して、中高級、アーキテクチャ師に進級したいと思っています!!swooleとlaravel、thinkphp 6を深く学びたいです.swoftマイクロサービスは使用中に多くの困難に直面しています.皆さんが一日も早くPHPアーキテクチャをアップグレードできるように、このPHPアーキテクチャの路線図とアーキテクチャのチュートリアルを参考にして、ここを突き刺してください.