ホームページ >バックエンド開発 >PHPチュートリアル >ソケットロング接続サーバーとして、Swoole がユーザー uid=123 で接続しているユーザーに積極的にメッセージをプッシュしたい場合、どのようにメッセージを作成すればよいでしょうか?
まあ、これは初心者レベルの質問のはずですが、ドキュメントを読んでもまだ理解できません。
まあ、これは初心者レベルの質問のはずですが、ドキュメントを読んでもまだ理解できません。
php のソケットはリソースタイプです: タイプ (Socket) の
resource(4)、つまり、各ソケットハンドルは同じに見えます。 。
そして、Linux C ソケット fd は int 整数であり、それぞれが異なる数値です。
ネイティブ PHP は、「ユーザー uid=123 で接続されているユーザーにメッセージをアクティブにプッシュ」することはできませんが、Linux C によって実装された Swoole のソケットの助けを借りて、「接続されているユーザーにメッセージをアクティブに送信」することができます。uid= のユーザー123、メッセージをプッシュしてください。」
コードは次のとおりです:
リーリー
その後、n 個のクライアントを開いてコードをテストできます。たとえば、3 つの Telnet 127.0.0.1 1024 を開きます。最後のクライアントはサーバーに「i am lucky man」というメッセージを送信し、最初のクライアントは「broadcast to lucky」を送信します。サーバーに送信します。」とすると、3 番目のサーバーは「some bodyBroadcast to you lucky man」を受信して、特定のユーザーにメッセージを送信します。
とてもシンプルです、Swoole は良い方法です、非同期 IO + マルチプロセスも最も成熟した最終ソリューションです (Nginx への敬意)
ははは
uid は、あなたが識別する uid です。サービスへのソケット リンクには、この一意の ID を介してのみメッセージを送信できます。これで、2 つの間のマッピングが可能になります。