Qt WebChannel ChatClient QML アプリケーション
WebSocketを介してQWebChannel サーバーと通信するQMLクライアントです。

ChatClient QMLは、JavaScriptとQMLを使用して実装されたシンプルなQWebChannel クライアントを提供します。
QML での Web Channel クライアントの実装
この例では、シグナルへの接続 (newMessage)、スロットの呼び出し (sendMessage)、プロパティの変更の処理 (userList) など、QWebChannel のクライアント JavaScript 実装で基本的な要素をどのように使用できるかを示しています。
クライアントは、localhostのポート12345にあるチャットサーバーへのWebSocket 接続を初期化します。WebSocketが開くと、WebSocketを第1引数、コールバック関数を第2引数として受け取るWebChannelオブジェクトが作成されます。 コールバックが呼び出されると、クライアントは `chatserver` という名前のオブジェクトを受け取ります。このオブジェクトには、チャットクライアントを実装するために必要なすべてのシグナル、スロット、およびプロパティが含まれています。コールバック関数は、chatserver オブジェクト上の `userListChanged`、`newMessage`、および `keepAlive ` を、それぞれのシグナルを処理する個別の関数に接続し、その後、loginWindow 上の `show ` を呼び出します。
idがloginWindow のWindow がログイン処理を担当します。このフォームには、LoginForm.ui.qmlで定義されたLoginForm が含まれています。ボタンを押すと、ログイン名とコールバック関数を引数として、chatserver オブジェクトのlogin 関数が呼び出されます。このコールバック関数は、ログインの成功時と失敗時の両方を処理します。
ログイン後、クライアントは MainForm.ui.qml で定義されたMainForm (id がmainUi )を使用し、sendMessage スロットを使ってメッセージを投稿し、newMessage シグナルを使ってメッセージを読み取り、userList プロパティを使って接続中のすべてのユーザーの名前を表示します。また、クライアントはサーバーのkeepAlive シグナルに応答し、サーバーが接続を切断したクライアントを検出し、userList プロパティからそれらを削除できるようにします。
このクライアントは、Qt WebChannel にある「ChatServer Example」と連携して動作します。
「Qt WebChannel ChatServer サンプル」および「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.