日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dotnet core 开发无缝兼容Http和Websocket协议的接口服务

發布時間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dotnet core 开发无缝兼容Http和Websocket协议的接口服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在應用接口開發中往往要針對不同協義開發相應的代理服務,但對于Websocket和http這兩種協議來說就有些不同,從實現上來看Websocket可以說是Http的升級子協議, 兩者在協議處理上基本一致,具體可以在解釋Body上有所不同。FastHttpApi在實現過程完全支持http協議升級成websocket協議,當制定一個基于http請求的接口時,其實已經是完全支持websocket協議;從而讓使用者只編寫一份代碼即可同時接受兩種協議處理。接下來還是以Northwind的數據來描述FastHttpApi制定相應服務開發。

接口制定

對于FastHttpApi定義一個可訪問的Http接口是一件非常簡單的事情,和定義一個邏輯方法沒有多大的差異;以下是定義一個訂單查詢邏輯的http接口,返回Json格式的數據。

以上代碼定義了三個Http請求:

  • /GetEmployeesName?獲取雇員的ID和名稱列表

  • /GetCustomersName?獲取客戶的ID和名稱列表

  • /ListOrders?查詢相應雇員和客戶的訂單信息 在瀏覽器上直接訪問/GetEmployeesName的數據結果

  • ?

    FastHttpApi對接口響應有默認的Json格式返回,Code為HTTP返回的狀態碼,200為正常,如果不是200那會帶上Error信息,Data則是具體響應的數據內容,Url則是對應請求的基礎地址。

    頁面Ajax請求接口

    既然通過瀏覽器訪問沒有問題,那接下來就可以通過Ajax進行數據請求了;以下是通過ajax調用/GetEmployeesName和/GetCustomersName兩個方法。

    請求數據后綁定到select控件上,這種是相當原始的設置模式了,相信現有的web前端組件已經不需要這么麻煩的工作了:)

    訂單查詢

    對于FastHttpApi制定方法參數的在http主要有兩種來源途徑,一種是通過Querystring提供,而另一種則通過Post一個json內容來提供;對于組件來說只要沒有添加[BodyParameter]標簽的參數都由QueryString來提供(實際使用中有特別的需要則可以實現自己Parameter的屬性標簽來擴展)。這樣一個訂單查詢的功能就開發完成了

    ?

    WebSocket請求

    由于服務端口和網站的端口是一致,所以構建websocket連接的時候并不要顯式地指定地址,直接拿瀏覽當前的Host地址即可。

    websocket = new WebSocket("ws://" + window.location.host);websocket.onopen = function (evt) { onOpen(evt) };websocket.onclose = function (evt) { onClose(evt) };websocket.onmessage = function (evt) { onMessage(evt) };websocket.onerror = function (evt) { onError(evt) };

    連接創建后就可以對服務進行請求,由于websocket默認發送的Text內容,為了能夠方便調用需要制定一些數據格式規劃,在這里我們首選也是Json.

    請求的數據內容主要包括url和params,url是描述具體請求的Http地址;params則是描述對應參數名的參數。通過和ajax的查詢代碼來對比,兩者沒有多大的區別,前者是基于url請求而后者則通過描述一個json來處理。

    API調用方式查看

    FastHttpApi內部集成了一個API查詢面頁,通過這個頁面可以查詢當前服務下所有可訪問的接口,并描述接口在ajax和websocket下的訪問調用方式和相關數據格式。訪問路徑/_info/api.html

    總結

    如果你想開發一個接口服務相同時支持ajax和websocket訪問的話,那FastHttpApi會是不錯的選擇,因為它能提供方便,高效和安全的應用服務接口編寫基礎服務功能。 本文例子的項目代碼:/samples/HttpApiServer.HttpAndWebsocketApi

    相關文章:

    • dotnet core高吞吐Http api服務組件FastHttpApi

    原文地址:?https://www.cnblogs.com/smark/p/9712639.html


    .NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

    總結

    以上是生活随笔為你收集整理的dotnet core 开发无缝兼容Http和Websocket协议的接口服务的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。