C#使用Fleck實現(xiàn)創(chuàng)建WebSocket服務器
寫在前面
Fleck 是 C# 實現(xiàn)的 WebSocket 服務器,通過 WebSocket API,瀏覽器和服務器只需要做一個握手的動作,然后瀏覽器和服務器之間就形成了一條快速通道;兩者之間就可以直接雙工數(shù)據(jù)通訊,改變了原有的B/S模式。整個實現(xiàn)過程的代碼非常簡單,分為服務端和客戶端兩部分,服務端用控制臺,客戶端只有一個內(nèi)嵌js的html文件。
老規(guī)矩用NuGet安裝Fleck類庫。

代碼實現(xiàn)
服務端代碼
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/');
// 當數(shù)據(jù)從服務器服務中心發(fā)送后,繼續(xù)向下運行過程
ws.onmessage = function (evt) {
inc.innerHTML += evt.data + '<br/>';
};
// 當鏈接對象找到服務端成功對接后,提示正常打開
ws.onopen = function () {
inc.innerHTML += 'connection opened<br/>';
};
// 當鏈接對象未找找到服務端成功對接后,提示打開失敗,別切單項關(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)用示例
先啟動服務端,建立監(jiān)聽,等待客戶端的連接。

用瀏覽器打開html 文件,這邊用的是Chrome:

到此這篇關(guān)于C#使用Fleck實現(xiàn)創(chuàng)建WebSocket服務器的文章就介紹到這了,更多相關(guān)C#創(chuàng)建WebSocket服務器內(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-01

