C#使用Fleck实现创建WebSocket服务器

 更新时间:2024年01月11日 09:22:07   作者:rjcql  
这篇文章主要为大家详细介绍了C#如何使用Fleck实现创建WebSocket服务器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

写在前面

Fleck 是 C# 实现的 WebSocket 服务器,通过 WebSocket API,浏览器和服务器只需要做一个握手的动作,然后浏览器和服务器之间就形成了一条快速通道;两者之间就可以直接双工数据通讯,改变了原有的B/S模式。整个实现过程的代码非常简单,分为服务端和客户端两部分,服务端用控制台,客户端只有一个内嵌js的html文件。

老规矩用NuGet安装Fleck类库。

代码实现

服务端代码

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/>";
 
            // 创建新的websocket新连接端口为7181
            window.ws = new wsImpl('ws://127.0.0.1:7181/');
 
            // 当数据从服务器服务中心发送后,继续向下运行过程
            ws.onmessage = function (evt) {
                inc.innerHTML += evt.data + '<br/>';
            };
 
            // 当链接对象找到服务端成功对接后,提示正常打开
            ws.onopen = function () {
                inc.innerHTML += 'connection opened<br/>';
            };
 
            // 当链接对象未找找到服务端成功对接后,提示打开失败,别切单项关闭
            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>

调用示例

先启动服务端,建立监听,等待客户端的连接。

用浏览器打开html 文件,这边用的是Chrome:

到此这篇关于C#使用Fleck实现创建WebSocket服务器的文章就介绍到这了,更多相关C#创建WebSocket服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • UpdateLayeredWindow实现任意异形窗口使用详解

    UpdateLayeredWindow实现任意异形窗口使用详解

    这篇文章主要为大家介绍了UpdateLayeredWindow实现任意异形窗口使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • C# 创建文本文件写入读取实现代码

    C# 创建文本文件写入读取实现代码

    C# 创建文本文件写入读取,可以用来做系统日志或程序操作日志或者错误记录,需要的朋友可以参考下。
    2011-11-11
  • 关于C#转换二进制所引起的一些思考

    关于C#转换二进制所引起的一些思考

    这篇文章主要给大家介绍了关于C#转换二进制所引起的一些思考,文中通过示例代码介绍的非常详细,对大家的学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • C# 生成JWT的示例代码

    C# 生成JWT的示例代码

    这篇文章主要介绍了C# 生成JWT的示例代码,需要的朋友可以参考下
    2009-04-04
  • C# wpf 通过HwndHost渲染视频的实现方法

    C# wpf 通过HwndHost渲染视频的实现方法

    日常开发中,特别是音视频开发,需要在界面上渲染视频,比如制作一个播放器、或者视频编辑工具、以及视频会议客户端。通常拿到的是像素格式数据,此时需要渲染到wpf窗口上就需要一定的方法,本文介绍一种通过hwnd渲染的方法,控件既能提供hwnd又能嵌入wpf窗口里
    2021-11-11
  • C#使用IHttpModule接口修改http输出的方法

    C#使用IHttpModule接口修改http输出的方法

    这篇文章主要介绍了C#使用IHttpModule接口修改http输出的方法,涉及C#操作IHttpModule接口的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • C#使用Spire.Doc for .NET实现Word首页面页眉页脚不同设置指南

    C#使用Spire.Doc for .NET实现Word首页面页眉页脚不同设置指南

    在远程办公时代,C# Word文档自动化需求激增,然而开发者常遇痛点:手动调整不同的Word首页页眉页脚繁琐,耗时长,且Interop依赖Office环境,部署难、跨平台弱,因此本文给大家介绍了C#使用Spire.Doc for .NET实现Word首页面眉页脚不同设置指南,需要的朋友可以参考下
    2026-03-03
  • C#中的依赖注入Dependency Injection DI的实现步骤

    C#中的依赖注入Dependency Injection DI的实现步骤

    在C#中依赖注入是一种实现控制反转的设计模式,用于解耦组件依赖关系,下面就来介绍一下依赖注入的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2025-06-06
  • Unity AssetBundle打包工具示例详解

    Unity AssetBundle打包工具示例详解

    这篇文章主要介绍了Unity AssetBundle打包工具,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • C#实现word和pdf格式互转

    C#实现word和pdf格式互转

    这篇文章主要为大家详细介绍了如何通过C#实现word和pdf格式互转功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10

最新评论