C#使用Fleck實現(xiàn)創(chuàng)建WebSocket服務(wù)器
寫在前面
Fleck 是 C# 實現(xiàn)的 WebSocket 服務(wù)器,通過 WebSocket API,瀏覽器和服務(wù)器只需要做一個握手的動作,然后瀏覽器和服務(wù)器之間就形成了一條快速通道;兩者之間就可以直接雙工數(shù)據(jù)通訊,改變了原有的B/S模式。整個實現(xiàn)過程的代碼非常簡單,分為服務(wù)端和客戶端兩部分,服務(wù)端用控制臺,客戶端只有一個內(nèi)嵌js的html文件。
老規(guī)矩用NuGet安裝Fleck類庫。
代碼實現(xiàn)
服務(wù)端代碼
using Fleck; public class WebSocketServerDemo { public static void Main(string[] args) { var server = new WebSocketServer("ws://127.0.0.1:7181"); server.Start(socket => { socket.OnOpen = () => Console.WriteLine("Open!"); socket.OnClose = () => Console.WriteLine("Close!"); socket.OnMessage = message => { Console.WriteLine(message); socket.Send(message + " from server"); }; }); Console.WriteLine("Server Started"); Console.ReadLine(); } }
客戶端代碼
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>WebSocket Demo</title> <script type="text/javascript"> var start = function () { var inc = document.getElementById('incomming'); var wsImpl = window.WebSocket || window.MozWebSocket; var form = document.getElementById('sendForm'); var input = document.getElementById('sendText'); inc.innerHTML += "connecting to server ...<br/>"; // 創(chuàng)建新的websocket新連接端口為7181 window.ws = new wsImpl('ws://127.0.0.1:7181/'); // 當(dāng)數(shù)據(jù)從服務(wù)器服務(wù)中心發(fā)送后,繼續(xù)向下運行過程 ws.onmessage = function (evt) { inc.innerHTML += evt.data + '<br/>'; }; // 當(dāng)鏈接對象找到服務(wù)端成功對接后,提示正常打開 ws.onopen = function () { inc.innerHTML += 'connection opened<br/>'; }; // 當(dāng)鏈接對象未找找到服務(wù)端成功對接后,提示打開失敗,別切單項關(guān)閉 ws.onclose = function () { inc.innerHTML += 'connection closed<br/>'; } form.addEventListener('submit', function (e) { e.preventDefault(); var val = input.value; ws.send(val); input.value = ""; }); } window.onload = start; </script> </head> <body> <form id="sendForm"> <input id="sendText" placeholder="Text to send" /> </form> <pre id="incomming"></pre> </body> </html>
調(diào)用示例
先啟動服務(wù)端,建立監(jiān)聽,等待客戶端的連接。
用瀏覽器打開html 文件,這邊用的是Chrome:
到此這篇關(guān)于C#使用Fleck實現(xiàn)創(chuàng)建WebSocket服務(wù)器的文章就介紹到這了,更多相關(guān)C#創(chuàng)建WebSocket服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中實現(xiàn)輸入漢字獲取其拼音(漢字轉(zhuǎn)拼音)的2種方法
這篇文章主要介紹了C#中實現(xiàn)輸入漢字獲取其拼音(漢字轉(zhuǎn)拼音)的2種方法,本文分別給出了使用微軟語言包、手動編碼實現(xiàn)兩種實現(xiàn)方式,需要的朋友可以參考下2015-01-01C#在復(fù)雜多線程環(huán)境下使用讀寫鎖同步寫入文件
這篇文章介紹了C#在復(fù)雜多線程環(huán)境下使用讀寫鎖同步寫入文件的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04Unity Shader實現(xiàn)素描風(fēng)格的渲染
這篇文章主要為大家詳細(xì)介紹了Unity Shader實現(xiàn)素描風(fēng)格的渲染,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04