您好,登錄后才能下訂單哦!
1.1、本期《C#網絡編程技術SuperSocket實戰項目演練》課程阿笨給大家帶來三個基于SuperSocket通訊組件的實戰項目演示實例:
● 基于SuperSocket開發的客戶端和服務端聊天應用程序(ABenNET.SuperSocket.AppChat)。
● 基于SuperWebSocket開發的客戶端和服務端聊天應用程序(ABenNET.SuperWebSocket.AppChat)。
● 基于SuperWebSocket開發的網頁端和服務端聊天應用程序(ABenNET.SuperWebSocket.WebChat)
1.2、SuperSocket課程涉及覆蓋的知識點
1.2.1、SuperSocket如何實現完善健康檢查機制
1)、如何實現客戶端和服務端保持心跳檢查功能(HeartBeat;)。
2)、如何實現客戶端與服務端斷線重連功能(ReConnection)。
1.2.2、SuperSocket服務器幾種配置方式介紹
1)、通過編碼方式實現SuperSocket服務端配置。
2)、通過獨立的Config配置文件方式實現SuperSocket服務端配置。
1.2.3、SuperSocket常見的幾種宿主方式介紹
1)、控制臺應用程序(Console)、WinForm、IIS等方式進行Socket服務端宿主。
2)、采用SuperSocket.SocketService.exe工具實現Windows服務方式進行Socket服務宿主。
1.2.4、SuperSocket和SuperWebSocket組件客戶端SDK和服務端SDK的常用使用介紹。
1)、EasyClient、CustomTerminatorReceiveFilter、CustomAppServer、CustomAppSession、CustomCommand
2)、CustomWebSocketServer、CustomWebSocketSession、WebSocket
如果您對本期的課程感興趣的話,那么請跟著阿笨一起學習吧!
廢話不多說,直接上干貨,我們不生產干貨,我們只是干貨的搬運工。
WebSocket截圖一
WebSocket截圖二
SuperSocket客戶端和服務端通訊截圖
3.1、SuperSocket是如何神圣?
官網解釋:SuperSocket 是一個輕量級, 跨平臺而且可擴展的 .Net/Mono Socket 服務器程序框架。你無須了解如何使用 Socket, 如何維護 Socket 連接和 Socket 如何工作,但是你卻可以使用 SuperSocket 很容易的開發出一款 Socket 服務器端軟件,例如游戲服務器,GPS 服務器, 工業控制服務和數據采集服務器等等。
阿笨理解:SuperSocket 是一個開源輕量級跨平臺而且可擴展的.NET高性能通訊中間件。
3.2、什么是Socket?
Socket的英文原義是“孔”或“插座”。網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱為一個socket。建立網絡通信連接至少要一對端口號(socket)。socket本質是編程接口(API),對TCP/IP的封裝,TCP/IP也要提供可供程序員做網絡開發所用的接口,這就是Socket編程接口;HTTP是轎車,提供了封裝或者顯示數據的具體形式;Socket是發動機,提供了網絡通信的能力。
3.3、什么是SuperSocket?
SuperSocket(簡稱SS)是一個輕量級的可擴展的 Socket 開發框架,可用來構建一個服務器端 Socket 程序,而無需了解如何使用 Socket,如何維護Socket連接,Socket是如何工作的。該項目使用純 C# 開發,易于擴展和集成到已有的項目。只要你的已有系統是使用.NET開發的,你都能夠使用 SuperSocket來輕易的開發出你需要的Socket應用程序來集成到你的現有系統之中。
3.4、什么是WebSocket?
WebSocket 協議本質上是一個基于 TCP 的協議。為了建立一個 WebSocket 連接,客戶端瀏覽器首先要向服務器發起一個 HTTP 請求,這個請求和通常的 HTTP 請求不同,包含了一些附加頭信息,其中附加頭信息”Upgrade: WebSocket”表明這是一個申請協議升級的 HTTP 請求,服務器端解析這些附加的頭信息然后產生應答信息返回給客戶端,客戶端和服務器端的 WebSocket 連接就建立起來了,雙方就可以通過這個連接通道自由的傳遞信息,并且這個連接會持續存在直到客戶端或者服務器端的某一方主動的關閉連接。
3.5、為什么會有WebSocket?
WebSocket是HTML5出的東西(協議),也就是說HTTP協議沒有變化,由于HTTP是不支持持久連接的基于現有的HTTP之上的一些技術(如長輪詢Polling、Comet)并滿足不了這種持久連接(TCPConnection)需求,有必要定義一個全新的協議。
3.6、什么是SuperWebSocket?
SuperWebSocket是基于.NET開源Socket框架SuperSocket開發的, SuperSocket所支持的大部分功能在SuperWebSocket中得到了繼承。用戶可通過SuperWebSocket來快速的構建可靠的,高性能的websocket服務器端應用程序。和SuperSocket一樣,SuperWebSocket可以控制臺和windows服務的形式運行,同時它還支持直接運行在Website之內,這樣更簡化了用戶的部署。
下面是主流瀏覽器對 HTML5 WebSocket 的支持情況:
WebSocket瀏覽器支持情況
3.7、Socket和WebSocket兩者有什么區別和聯系?
兩者區別:WebSocket是HTML5下一種新的協議。它實現了瀏覽器與服務器全雙工通信,能更好的節省服務器資源和帶寬并達到實時通訊的目的。它與HTTP一樣通過已建立的TCP連接來傳輸數據,但是它和HTTP最大不同是:
1)、WebSocket是一種雙向通信協議。在建立連接后,WebSocket服務器端和客戶端都能主動向對方發送或接收數據,就像Socket一樣;
2)、WebSocket需要像TCP一樣,先建立連接,連接成功后才能相互通信。
兩者聯系:可以把WebSocket想象成HTTP,HTTP和Socket什么關系,WebSocket和Socket就是什么關系。
為什么要單獨出一節關于supersocket的安裝手冊?由于supersocket經歷了很多的版本的迭代,作為初學者的童鞋可能按照官方文檔使用的過程中難免出現程序集引用出現混亂的情況。特別阿笨明白大家的痛點,故特別給大家總結了一下使用supersocket過程中需要注意的事項。
關于supersocket組件nuget主頁下載地址
https://www.nuget.org/profiles/kerryjiang?大家千萬別下錯了。
一、SuperSocket
1)、SuperSocket?服務端(Server)
github下載地址:https://github.com/kerryjiang/SuperSocket
nuget下載地址:https://www.nuget.org/packages/SuperSocket/
SuperSocket.Engine?服務引擎 (必須安裝)
nuget下載地址:https://www.nuget.org/packages/SuperSocket.Engine/
2)、SuperSocket.ClientEngine?客戶端(Client)
gitbub下載地址:https://github.com/kerryjiang/SuperSocket.ClientEngine
nuget下載地址:https://www.nuget.org/packages/SuperSocket.ClientEngine/? ??
特別說明:關于客戶端client engine版本0.7.0.1以后的版本就不再是使用AsyncTcpSession對象而是使用EasyClient對象Install-Package SuperSocket.ClientEngine.Core -Version 0.7.0.1? ,而在0.7.0.1版本中既使用了EasyClient也使用了AsyncTcpSession。不知道為什么新的版本作者把它給閹割了。有誰可以回答一下我的這個問題嗎?
二、SuperWebSocket
SuperSocket通訊組件支持WebSocket協議。
1)、SuperSocket.WebSocket?服務端(Server)
nuget下載地址:https://www.nuget.org/packages/SuperSocket.WebSocket/
千萬不要再使用SuperWebSocket這個老的版本了,現在已經獨立出來啦。
SuperWebSocket nuget下載地址:https://www.nuget.org/packages/SuperWebSocket/
2)、WebSocket4Net客戶端(Client)
github下載地址:https://github.com/kerryjiang/WebSocket4Net
nuget下載地址:https://www.nuget.org/packages/WebSocket4Net/
SuperSocket.ClientEngine客戶端引擎 (必須安裝)
3)、 WebSocket 客戶端的 JavaScript API
●?HTML5定義的WebSocket
● Socket.io
● sockjs
● ?基于SuperSocekt實現客戶端和服務端通信
●?基于SuperWebSocekt實現客戶端和服務端通信
● 基于SuperWebSocekt實現WEB網頁端和服務端通信
●?我們到底選擇哪一款開源的Socket框架?(詳細文章介紹可以關注跟著阿笨一起玩NET×××公眾號ABentDotNet)
1、這個需要大家結合自身的項目場景來決定了;如果您的項目場景不復雜,只需要實現客戶端和服務端進行通信但又想上手簡單的話,那么推薦使用FS;如果您的項目應用場景比較復雜,比如需要自定義通訊協議,需要支持WebSocket、多服務器實例托管,部署靈活性等等一些高級復雜的功能,那么推薦使用SS。
2、兩款Socket框架作為NET學習網絡編程技術都是值得推薦學習的。
●?阿笨希望帶來的自己對Scoket網絡編程技術的一些理解和認識吧,力爭將Socket技術的真真干貨內容分享給大家。這就是阿笨的課程與市面上最大的不同點,"理論+實戰相結合"+"從實戰從來到實戰中去",學完后直接將學習成果運用到實際項目中去!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。