摘要:端暴露給端的方法方案優缺點對比結論對于復雜的場景支持程度優先選擇方案二。此文檔提供的方案同樣適用于開發的客戶端與數據交互
背景
CS架構中會在客戶端中嵌入web頁面,能大量提升開發效率和用戶體驗。AR客戶端開發語言為C#,其中的Web頁面運行在基于Chromium的瀏覽器中,當Cient端需要調用多個Web窗口,并且各個Web窗口間也有數據交互,這樣的情況下Cient端管理多個Web窗口、Web端與Cient端、Web與Web窗口間如何更好的進行數據交互就成為一個復雜的場景。基于項目實踐和以往的開發經驗做了這方面的總結歸納。
C#向Web端,目前已知的可實現方案如下:方案一:
C#調起Web頁面時,將數據參數加入到url中,Web端解析。這是在一般項目中簡單的業務場景下最優先選用的方案,傳參形式如下:http://10.10.10.10:80/index.html?pageId=3345688&name=62133&postType=1
方案二
C#調起Web頁面后直接調用js暴露出的函數,將數據以參數的形式發送給Web端。
Web端暴露給Client端的方法: 方案優缺點對比:結論:對于復雜的場景支持程度優先選擇方案二。
Web端向C#進行數據傳輸,目前已知的可實現方案如下方案1
C#暴露接口給Web端,js直接調用C#接口以參數形式發送數據,C#解析請求參數解析并進行事件分發。
Web調用c#暴露的方法
方案2
Web端與c#自定義協議,Web端通過自定義協議將數據發送給Client端,Client端截取自定義協議請求并解析。
如果定義的協議為:webclientprotocol://websendmsgtoclient,Web頁面通過iframe發送該請求,并在請求中加入數據如下:webclientprotocol://websendmsgtoclient?id=0&name=page
方案3:
Web端通過http請求向Web后端服務發送數據,Web后端服務通過tcp長連接向Client端發送數據,這種方式由于涉及多方面的數據傳輸,并且tcp傳輸數據復雜,一般情況下不選用該方案。
方案對比:
結論:從傳輸效率、開發工作量、實現的復雜度三個方面對比,方案一的優勢明顯。
選擇C#向Web端的方案二和Web端向C#的方案一應用數據傳輸格式:只支持String格式傳輸,但是為了數據解析的方便,將json轉換為string;
如果有A、B、C、D四個窗口間有數據的相互傳輸,模型如下:
備注:文中粘貼的代碼只是代碼實例,項目中實際用的暴露接口需要提供事件分發,數據格式檢測的功能。
此文檔提供的方案同樣適用于C++開發的客戶端與Web數據交互
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94628.html
摘要:說起,其實早在出現之前,網頁就是在服務端渲染的。沒有涉及流式渲染組件緩存對的服務端渲染有更深一步的認識,實際在生產環境中的應用可能還需要考慮很多因素。選擇的服務端渲染方案,是情理之中的選擇,不是對新技術的盲目追捧,而是一切為了需要。 作者:威威(滬江前端開發工程師)本文原創,轉載請注明作者及出處。 背景 最近, 產品同學一如往常笑嘻嘻的遞來需求文檔, 縱使內心萬般拒絕, 身體倒是很誠實...
摘要:讓端與服務端維持一個有效的長連接,實現服務端主動推送數據。不同是實現了服務端與客戶端的全雙工通訊。在未出現之前,要是實現一個信息推送的功能,通過來實現唯一方案就是輪訓,輪訓分長短,各有弊端。 Web Worker讓JS有了多線程的能力,可以將復雜耗時的操作都交付給Worker線程處理。WebSocket讓web端與服務端維持一個有效的長連接,實現服務端主動推送數據。將二者一結合,業務系...
摘要:讓端與服務端維持一個有效的長連接,實現服務端主動推送數據。不同是實現了服務端與客戶端的全雙工通訊。在未出現之前,要是實現一個信息推送的功能,通過來實現唯一方案就是輪訓,輪訓分長短,各有弊端。 Web Worker讓JS有了多線程的能力,可以將復雜耗時的操作都交付給Worker線程處理。WebSocket讓web端與服務端維持一個有效的長連接,實現服務端主動推送數據。將二者一結合,業務系...
閱讀 2216·2021-09-07 09:58
閱讀 3391·2019-08-30 14:07
閱讀 1305·2019-08-29 12:32
閱讀 667·2019-08-29 11:06
閱讀 3692·2019-08-26 18:18
閱讀 3731·2019-08-26 17:35
閱讀 1381·2019-08-26 11:35
閱讀 611·2019-08-26 11:35