最近とても忙しく、会社でコーディングをし、家に帰っても入力を続けています。忙しければ忙しいほど、トラブルが増えます。偶然にも、夜中の 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:// を探してください。見つかります)