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