Qt WebChannel ChatClient QML 应用

一个使用 WebSocket 与 QWebChannel 服务器通信的 QML 客户端。

ChatClient QML 提供了一个简单的使用 JavaScript 和 QML 实现的 QWebChannel 客户端。

在 QML 中实现 WebChannel 客户端

此示例演示了如何使用基本元素和 QWebChannel 的客户端 JavaScript 实现进行连接,如连接到信号(newMessage),调用槽(sendMessage),以及处理属性更改(userList)。

客户端在本地机的 12345 端口上初始化了一个到聊天服务器的 WebSocket 连接。当 WebSocket 打开时,创建了一个 WebChannel 对象,将 WebSocket 作为第一个参数,并将回调函数作为第二个参数。当回调函数被调用时,客户端接收一个名为 chatserver 的对象,其中包含实现聊天客户端所需的所有必要信号、槽和属性。回调函数将 userListChangednewMessagekeepAlive 信号连接到 chatserver 对象,并使用单独的函数处理这些信号,然后调用 loginWindowshow

loginWindow 作为 id 的 Window 处理登录过程。它包含一个定义在 LoginForm.ui.qml 中的 LoginForm。当你按下按钮时,它将在 chatserver 对象上调用具有登录名称和回调函数的 login 函数。此回调函数处理登录成功或失败的情况。

登录后,客户端使用定义在 MainForm.ui.qml 中的 MainForm,其 id 为 mainUi,通过 sendMessage 槽发送消息,通过 newMessage 信号读取消息,并使用 userList 属性查看所有连接用户的名称。此外,客户端还对服务器的 keepAlive 信号作出响应,以便服务器检测断开连接的客户端并将它们从 userList 属性中删除。

客户端可以与 Qt WebChannel ChatServer 示例 一起工作。

示例项目 @ code.qt.io

另请参阅Qt WebChannel ChatServer 示例Qt WebChannel ChatClient HTML 示例

© 2024 Qt公司。本文档中包含的贡献文档的版权属于各自的所有者。本提供的文档使用 GNU 自由文档许可协议版本 1.3 许可,由自由软件基金会发布。Qt及其相关标志是芬兰及其它国家和地区Qt公司有限合伙的商标。所有其它商标均为各自所有者的财产。