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