ホームページ  >  記事  >  バックエンド開発  >  PHP グループ チャット ルームの現実性を探る

PHP グループ チャット ルームの現実性を探る

WBOY
WBOYオリジナル
2016-06-23 13:31:181905ブラウズ

最近とても忙しく、会社でコーディングをし、家に帰っても入力を続けています。忙しければ忙しいほど、トラブルが増えます。偶然にも、夜中の 1 時でした。このグループ チャット ルームを書き終えるのに一晩かかりました。2 日前に fooking の WebSocket プロトコルを追加し、純粋に Lua で実装しました。

フックプロジェクトのアドレス:

オンラインデモのアドレス: http://182.254.135.131/chat/

チャット ルームの開発は、基本的に、実装が簡単なため、すべての長いソケット接続で一般的な方法です。最小限のコードでクライアントとサーバー間の永続的な通信を実現します。そのため、今回も例外ではありません。チャット ルームについて話しましょう。今回はもう少し「高度な」もので、メッセージを送信する代わりにグループ化することができます。メッセージを送信して全員にブロードキャストします。ユーザーが指定されたグループにデータを送信すると、このグループ内のユーザーのみがメッセージを受信でき、他のグループはメッセージを受信できません。もちろん、ここでのグループ化では、フックのマルチキャスト メカニズムを使用して、N 個のクライアントをグループに追加します (グループ名は任意の文字列にすることができます)。メッセージを送信するときは、グループ名を指定するだけです (実際には、メッセージを保存することを意味します)。次にリストが走査されて送信されますが、このステップはフックによって完了します)。

チャットルームのインターフェースは大まかに次のとおりです。左がユーザーリスト、右上がチャンネルリスト(選択可能)、自分が持っているチャンネルを選択するとメッセージリストになります。参加していない場合は、「このチャンネルに参加」ボタンをクリックしてチャンネルに参加し、あとはチャットするだけです。


このようなチャット ルーム プログラムに必要な php は 100 行未満、html/css/js は 200 行未満です。その構成も次のように非常に簡単です。

1. ルーターを起動します。プロジェクトの src ディレクトリにある Router.lua 設定ファイル (例: ポート、ログなど) を変更し、次を実行します: ./fooking router.lua

2. ゲートウェイを起動し、次のディレクトリにある config.lua 設定ファイルを変更します。プロジェクトの src ディレクトリ (例: port 、ルーター ポート、スクリプト、PHP プログラム パスなど、主に FastCGI_ROOT) に移動し、次を実行します: ./fooking config.lua

注: script.lua は config.lua ( config.lua を変更するときは、script.lua のパスに注意してください

Script.Lua は、別の Sha1.Lua ファイルに依存する必要があります。スクリプトを配置する必要があることに注意してください。Lua と Sha1.lua は同じディレクトリに配置されます。そうしないと、エラーが報告される可能性があります

3. php-fpm、redis、および redis 拡張機能をインストールします

4. 変更しますexample/chat/index.html ファイル内の WebSocket の IP とポート (ws:// を探してください。見つかります)


🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。