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も参照して ください。

©2024 The Qt Company Ltd. 本ドキュメントに含まれるドキュメントの著作権はそれぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。