Qt WebChannel ChatServerのサンプル
QWebChannel のC++ APIを使用して実装されたシンプルなチャットサーバーです。

ChatServerは、Qt WebChannel のChatClient QMLアプリケーションおよびQt WebChannel のChatClient HTMLサンプルが接続できるチャットサービスを提供します。
例の動作確認
サンプルは次の手順で実行できます:
- Qt Creator
Welcome モードを開き、Examples からこのサンプルを選択します。詳細については、Qt Creator の「チュートリアル:ビルドと実行」を参照してください。
- Qt Extension for Visual Studio Code
Command Palette から `Qt: Open Qt examples ` コマンドを実行し、リストからサンプルを選択します。詳細については、Qt Extension for Visual Studio Code: チュートリアル: ビルドと実行を参照してください。
チャットサーバーの実装
この C++ アプリケーションは、チャットサービスに必要なすべての仕組みを提供する `QObject ` を実装しています。このオブジェクトは、WebSocketをトランスポートとして使用する `QWebChannel ` を通じて公開されます。
サーバーは基本的なlogin メソッド(ユーザー名のみ、パスワードなし)を提供しており、クライアントがチャットを行うには、このメソッドが正常に呼び出される必要があります。ログイン後、クライアントはsendMessage メソッドを呼び出し、newMessage シグナルを受信することで、メッセージの送信および受信が可能になります。さらに、userList プロパティがあり、これによって接続中の他のすべてのクライアントの名前を取得できます。 また、サーバーはすべてのクライアントに対して定期的に `keepAlive ` シグナルを送信します。クライアントはこのシグナルに応答する必要があります。応答がない場合、そのクライアントは `userList ` プロパティから削除されます。
この例では、QWebChannel において、QObject の基本的な要素、すなわちシグナル(newMessage )、スロット(sendMessage )、プロパティ(userList )をどのように使用できるかを示しています。
これは単純なサーバーアプリケーションであるため、これとやり取りするには個別のクライアントが必要です。「Qt WebChannel ChatClient QMLアプリケーション」および「Qt WebChannel ChatClient HTMLサンプル」は、このサーバーと互換性のあるクライアントの実装例です。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.