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 オブジェクト上のuserListChangednewMessagekeepAlive を、これらのシグナルを処理する別々の関数で接続し、loginWindow 上のshow を呼び出します。

loginWindow をidとするWindow はログイン・プロシージャを処理します。これはLoginForm.ui.qmlで定義されたLoginForm 。ボタンを押すと、ログイン名とコールバック関数を引数として、chatserver オブジェクトのlogin 関数を呼び出します。このコールバック関数は、ログインが成功した場合と失敗した場合の両方を処理します。

ログイン後、クライアントはMainForm.ui.qmlで定義されたMainFormmainUi をidとする)を使用し、sendMessage スロットを使用してメッセージを投稿し、newMessage シグナルを使用してメッセージを読み、userList プロパティを使用して接続されているすべてのユーザーの名前を表示します。また、サーバーが切断されたクライアントを検出し、userList プロパティから削除するために、クライアントはサーバーのkeepAlive シグナルに応答します。

クライアントは、Qt WebChannel ChatServer Example で動作することができます。

サンプルプロジェクト @ code.qt.io

Qt WebChannel ChatServer ExampleQt 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.