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連接到正在運行的服務器並接收數據。