QT-web socket
Qt WebSockets模块提供了C ++和QML接口,这使得Qt应用程序可以作为处理WebSocket请求的服务器,或者作为从服务器接收数据的客户端,或者两者兼而有之。
要包含模块类的定义,请使用以下指令:
若要将QML类型导入到应用程序中,请在。qml文件:
要链接该模块,请将下面一行添加到qmake中。专业文件:
Qt WebSockets使您能够构建支持WebSockets的应用程序。它提供了WebSocket协议的实现,该协议由IETF(互联网工程任务组)提供,是使用现有Web基础设施进行双向通信的更好的替代方案。
历史上,需要双向通信或推送通知的Web应用程序必须使用可用的基于HTTP的解决方案。这些解决方案采用不同的技术,如轮询、长轮询和流式传输,以克服HTTP协议的限制,这些协议不是为这种用例设计的。这导致高网络延迟、不必要的数据交换和过时或旧数据。IETF WebSocket产品在很大程度上帮助克服了这些问题。
如图所示,基于WebSocket的解决方案由客户端和服务器端组成。最流行的网络浏览器(如谷歌Chrome、Internet Explorer、Safari等。)为WebSocket提供本地客户端支持。WebSocket的服务器端支持使其成为一个完整的解决方案,从而实现双向通信。任何支持本地WebSocket的浏览器都应该允许您使用HTML5 WebSocket API运行基于HTML和JavaScript的简单客户端应用程序。
WebSocket WebSocket连接从最初的HTTP兼容握手开始,这确保了向后兼容性,并使WebSocket连接* * *享受默认的HTTP(80)和HTTPS(443)端口。握手成功后,将打开连接进行数据交换,直到两个实体中的一个结束连接。
WebSocket的WebSocket协议使用ws:和wss :URL方案分别表示不安全和安全的Web socket请求。在初始握手过程中,如果检测到代理服务器,协议会通过向HTTP CONNECT代理发出一条语句来尝试建立隧道。虽然已经证明TLS(传输层安全)在安全连接中可以更好地工作,但是不管请求类型如何,都使用隧道方法来处理代理。
WebSocket最适合以下情况:
一些我们试图通过传统方法实现这些目标的示例应用程序,如即时消息、在线游戏、在线股票交易等。
Qt WebSockets模块提供API来开发基于WebSocket的服务器和客户端应用。可以使用的这些API的例子有提供股票数据的服务器应用程序,以及当一些股票的价格发生变化时注册推送通知的客户端应用程序。
该模块提供了C ++和QML版本的API,因此您可以选择一种适合您需求的替代方法。
客户端应用程序通常依赖外部服务来获取数据。这些服务提供商中的大多数还不支持WebSocket,因此有必要开发WebSocket感知的服务器应用程序来弥合这一差距。您可以在企业WebSocket网关服务(比如云服务)上运行服务器,从而避免维护托管此类服务所需的必要基础设施的麻烦。
大多数云服务提供平台即服务(PaaS)后端,可以在云上部署和运行服务器应用程序的实例。客户端应用程序可以使用WebSocket URL连接到正在运行的服务器并接收数据。