欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用Fleck實(shí)現(xiàn)創(chuàng)建WebSocket服務(wù)器

 更新時(shí)間:2024年01月11日 09:22:07   作者:rjcql  
這篇文章主要為大家詳細(xì)介紹了C#如何使用Fleck實(shí)現(xiàn)創(chuàng)建WebSocket服務(wù)器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

寫(xiě)在前面

Fleck 是 C# 實(shí)現(xiàn)的 WebSocket 服務(wù)器,通過(guò) WebSocket API,瀏覽器和服務(wù)器只需要做一個(gè)握手的動(dòng)作,然后瀏覽器和服務(wù)器之間就形成了一條快速通道;兩者之間就可以直接雙工數(shù)據(jù)通訊,改變了原有的B/S模式。整個(gè)實(shí)現(xiàn)過(guò)程的代碼非常簡(jiǎn)單,分為服務(wù)端和客戶端兩部分,服務(wù)端用控制臺(tái),客戶端只有一個(gè)內(nèi)嵌js的html文件。

老規(guī)矩用NuGet安裝Fleck類庫(kù)。

代碼實(shí)現(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ù)向下運(yùn)行過(guò)程
            ws.onmessage = function (evt) {
                inc.innerHTML += evt.data + '<br/>';
            };
 
            // 當(dāng)鏈接對(duì)象找到服務(wù)端成功對(duì)接后,提示正常打開(kāi)
            ws.onopen = function () {
                inc.innerHTML += 'connection opened<br/>';
            };
 
            // 當(dāng)鏈接對(duì)象未找找到服務(wù)端成功對(duì)接后,提示打開(kāi)失敗,別切單項(xiàng)關(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)用示例

先啟動(dòng)服務(wù)端,建立監(jiān)聽(tīng),等待客戶端的連接。

用瀏覽器打開(kāi)html 文件,這邊用的是Chrome:

到此這篇關(guān)于C#使用Fleck實(shí)現(xiàn)創(chuàng)建WebSocket服務(wù)器的文章就介紹到這了,更多相關(guān)C#創(chuàng)建WebSocket服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#清除字符串內(nèi)空格的方法

    C#清除字符串內(nèi)空格的方法

    這篇文章主要介紹了C#清除字符串內(nèi)空格的方法,是C#操作字符串非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • C# Console.WriteLine()用法案例詳解

    C# Console.WriteLine()用法案例詳解

    這篇文章主要介紹了C# Console.WriteLine()用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C#中實(shí)現(xiàn)輸入漢字獲取其拼音(漢字轉(zhuǎn)拼音)的2種方法

    C#中實(shí)現(xiàn)輸入漢字獲取其拼音(漢字轉(zhuǎn)拼音)的2種方法

    這篇文章主要介紹了C#中實(shí)現(xiàn)輸入漢字獲取其拼音(漢字轉(zhuǎn)拼音)的2種方法,本文分別給出了使用微軟語(yǔ)言包、手動(dòng)編碼實(shí)現(xiàn)兩種實(shí)現(xiàn)方式,需要的朋友可以參考下
    2015-01-01
  • C#在復(fù)雜多線程環(huán)境下使用讀寫(xiě)鎖同步寫(xiě)入文件

    C#在復(fù)雜多線程環(huán)境下使用讀寫(xiě)鎖同步寫(xiě)入文件

    這篇文章介紹了C#在復(fù)雜多線程環(huán)境下使用讀寫(xiě)鎖同步寫(xiě)入文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • Unity Shader實(shí)現(xiàn)素描風(fēng)格的渲染

    Unity Shader實(shí)現(xiàn)素描風(fēng)格的渲染

    這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)素描風(fēng)格的渲染,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c#并行編程示例分享

    c#并行編程示例分享

    這篇文章主要介紹了c#并行編程示例,大家直接看下面的代碼吧
    2014-01-01
  • C#流程控制詳解

    C#流程控制詳解

    這篇文章主要介紹了C#流程控制詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • C#類繼承自泛型集合的例子

    C#類繼承自泛型集合的例子

    在C#中,除了泛型字典外,你還可以繼承其他集合類型,本文通過(guò)實(shí)例代碼主要介紹了C#類繼承自泛型集合,需要的朋友可以參考下
    2024-08-08
  • 基于C#一個(gè)制作圖像的特寫(xiě)窗口

    基于C#一個(gè)制作圖像的特寫(xiě)窗口

    許多網(wǎng)站都會(huì)顯示一個(gè)特寫(xiě)窗口,其中顯示放大的圖像部分,以便您可以看到更多細(xì)節(jié),本文將使用C#制作一個(gè)簡(jiǎn)單的圖像的特寫(xiě)窗口,感興趣的可以了解下
    2025-01-01
  • 配置C#的系統(tǒng)環(huán)境變量的方法

    配置C#的系統(tǒng)環(huán)境變量的方法

    配置C#的系統(tǒng)環(huán)境變量的方法...
    2007-03-03

最新評(píng)論