Fleck说明文档翻译

article/2025/10/6 5:33:00

CSDN 

ZslLoveMiwa的博客 

Fleck

Build status NuGet                                                                                                                                                               Fleck是一个在C#中的WebSocket服务器端的一个实现.。分支自Nugget项目, Fleck不需要任何的继承、容器亦或是需要增加的引用就可以使用。

实例

下面是一个把客户端网页发来的消息回发到客户端的服务器程序。

var server = new WebSocketServer("ws://0.0.0.0:8181");
server.Start(socket =>
{socket.OnOpen = () => Console.WriteLine("Open!");socket.OnClose = () => Console.WriteLine("Close!");socket.OnMessage = message => socket.Send(message);
});

支持WebSocket的网页版本

Fleck支持多种现代的具有WebSocket功能版本的浏览器。

  • Hixie-Draft-76/Hybi-00 (Safari 5, Chrome < 14, Firefox 4 (when enabled))
  • Hybi-07 (Firefox 6)
  • Hybi-10 (Chrome 14-16, Firefox 7)
  • Hybi-13 (Chrome 17+)

支持使用安全的网络通讯协议 (wss://)

启用安全的网络连接需要如下两件事:

1. 使用“wss”代替原来的“ws”;

2. 将Fleck指定一个包含一个共钥和私钥的x509证书;

var server = new WebSocketServer("wss://0.0.0.0:8431");
server.Certificate = new X509Certificate2("MyCert.pfx");
server.Start(socket =>
{//...use as normal
});

子协议协商系统

为了启用子协议协商,在 WebSocketServer.SupportedSubProtocols属性上进行指定声明。 协商的子协议将在套接字的 ConnectionInfo.NegotiatedSubProtocol上可用。如果在客户端请求(在用于WebSocket打开阶段握手的头字段)上没有找到支持的子协议,则连接将被关闭。

①这个地方我也不是很懂,要是有大神懂欢迎指正!

var server = new WebSocketServer("ws://0.0.0.0:8181");
server.SupportedSubProtocols = new []{ "superchat", "chat" };
server.Start(socket =>
{//socket.ConnectionInfo.NegotiatedSubProtocol is populated
});

自定义日志系统

Fleck可以讲日志注入Log4Net等的一些第三方的日志系统中。仅仅需要用目标的日志行为方法注入一下FleckLog.LogAction 属性即可使用。

ILog logger = LogManager.GetLogger(typeof(FleckLog));FleckLog.LogAction = (level, message, ex) => {switch(level) {case LogLevel.Debug:logger.Debug(message, ex);break;case LogLevel.Error:logger.Error(message, ex);break;case LogLevel.Warn:logger.Warn(message, ex);break;default:logger.Info(message, ex);break;}
};

禁用Nagle的缓冲器算法

WebSocketConnection.ListenerSocket  中的 NoDelay设置为true。
var server = new WebSocketServer("ws://0.0.0.0:8181");
server.ListenerSocket.NoDelay = true;
server.Start(socket =>
{//Child connections will not use Nagle's Algorithm
});

监听过程中出现错误自动重启

设置 WebSocketConnection     RestartAfterListenError  属性为true。
var server = new WebSocketServer("ws://0.0.0.0:8181");
server.RestartAfterListenError = true;
server.Start(socket =>
{//...use as normal
});

滑稽分界线

Fleck原文

Build status NuGet                                                                                                                                                                   

Fleck is a WebSocket server implementation in C#. Branched from the Nugget project, Fleck requires no inheritance, container, or additional references.

Example

The following is an example that will echo to a client.

var server = new WebSocketServer("ws://0.0.0.0:8181");
server.Start(socket =>
{socket.OnOpen = () => Console.WriteLine("Open!");socket.OnClose = () => Console.WriteLine("Close!");socket.OnMessage = message => socket.Send(message);
});

Supported WebSocket Versions

Fleck supports several WebSocket versions of modern web browsers

  • Hixie-Draft-76/Hybi-00 (Safari 5, Chrome < 14, Firefox 4 (when enabled))
  • Hybi-07 (Firefox 6)
  • Hybi-10 (Chrome 14-16, Firefox 7)
  • Hybi-13 (Chrome 17+)

Secure WebSockets (wss://)

Enabling secure connections requires two things: using the scheme wss instead of ws, and pointing Fleck to an x509 certificate containing a public and private key

var server = new WebSocketServer("wss://0.0.0.0:8431");
server.Certificate = new X509Certificate2("MyCert.pfx");
server.Start(socket =>
{//...use as normal
});

SubProtocol Negotiation

To enable negotiation of subprotocols, specify the supported protocols on theWebSocketServer.SupportedSubProtocolsproperty. The negotiated subprotocol will be available on the socket's ConnectionInfo.NegotiatedSubProtocol.

If no supported subprotocols are found on the client request (the Sec-WebSocket-Protocol header), the connection will be closed.

var server = new WebSocketServer("ws://0.0.0.0:8181");
server.SupportedSubProtocols = new []{ "superchat", "chat" };
server.Start(socket =>
{//socket.ConnectionInfo.NegotiatedSubProtocol is populated
});

Custom Logging

Fleck can log into Log4Net or any other third party logging system. Just override the FleckLog.LogAction property with the desired behavior.

ILog logger = LogManager.GetLogger(typeof(FleckLog));FleckLog.LogAction = (level, message, ex) => {switch(level) {case LogLevel.Debug:logger.Debug(message, ex);break;case LogLevel.Error:logger.Error(message, ex);break;case LogLevel.Warn:logger.Warn(message, ex);break;default:logger.Info(message, ex);break;}
};

Disable Nagle's Algorithm

Set NoDelay to true on the WebSocketConnection.ListenerSocket

var server = new WebSocketServer("ws://0.0.0.0:8181");
server.ListenerSocket.NoDelay = true;
server.Start(socket =>
{//Child connections will not use Nagle's Algorithm
});

Auto Restart After Listen Error

Set RestartAfterListenError to true on the WebSocketConnection

var server = new WebSocketServer("ws://0.0.0.0:8181");
server.RestartAfterListenError = true;
server.Start(socket =>
{//...use as normal
});
原文地址


http://chatgpt.dhexx.cn/article/qT0MAEeu.shtml

相关文章

fleck 客户端_C#中使用Fleck实现WebSocket通信简例

Fleck是一个开源的使用C#封装的WebSocket服务端工具库。 一、服务端搭建 这里选择在.net core 2.1框架下新建了一个控制台程序 在项目里使用NuGet引入Fleck包 NuGet引入Fleck包 其它方式也可以,最终引入项目里都是Fleck.dll Fleck.dll 二、服务端实例 Github上的简单例子: 简…

Fleck WebSocket使用

作为笔记存储. 最近公司有这方面的使用需求。在网上查了一些资料后。得到了想要的结果。以下记录摘抄至网上资料 1.首先,服务端。项目NuGet直接引用Fleck类库。 code: 1 //客户端url以及其对应的Socket对象字典2 IDictionary<string, IWebSocket…

车牌识别技术原理

车牌识别技术原理 车牌识别技术原理都是一样的&#xff0c;具体流程如下&#xff1a;图像捕捉与获取、车牌定位、字符分割字符识别、输出结果。不一样的是在上述环节中采用不同的技术&#xff0c;比如作为核心技术的车牌定位&#xff0c;就可能用到(1)自适应边界搜索法、(2)区…

python实现车牌识别

原始图象 代码 from hyperlpr import HyperLPR_plate_recognition import cv2 from PIL import ImageFont, ImageDraw, Image import numpy as npimage cv2.imread("car.jpg")#读入图片 resultHyperLPR_plate_recognition(image)#识别车牌 plate result[0][0] #…

基于形态学处理的车牌提取,字符分割和车牌识别算法matlab仿真

目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下&#xff1a; 2.MATLAB核心程序 ........................................................................... figure(8);subplot(3,2,2),imshow(d…

车牌识别算法介绍与实践

汽车牌照自动识别整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块&#xff0c;其中字符识别过程主要由以下3个部分组成&#xff1a; ①正确地分割文字图像区域&#xff1b; ②正确的分离单个文字&#xff1b; ③正确识别单个字符。 用MATLAB软件编…

基于android的车牌识别程序,基于Android平台车牌识别算法,实现手机识别车牌

原标题:基于Android平台车牌识别算法,实现手机识别车牌 近年来,随着移动行业的爆发式发展,手机配置不断提高,基于手机平台的信息采集、图像处理、数据传输等方面的研究也成为了热点,这使得基于手机平台上的车牌识别成为可能。传统的车牌识别系统一般都基于固定的桌面平台…

【车牌识别】基于HOG特征提取和GRNN网络的车牌识别算法matlab仿真

1.软件版本 matlab2017b 2.系统原理 从图的算法流程图可知&#xff0c;基于车牌图像字符特征提取和神经网络的识别算法其首先将训练样本数据进行预处理&#xff0c;得到质量较高的样本数据&#xff0c;然后对这些样本数据进行HOG特征提取&#xff0c;再将特征数据通过神经网络…

【XLPNet车牌识别算法】第二章 检测部分-算法篇1

【XLPNet车牌识别算法】第二章 检测部分-算法篇1 1. XLPNet检测算法前言2. XLPNet检测算法详解2.1 起源2.2 算法细节2.1 算法命名2.2 数据集2.3 预备知识2.4 核心&#xff1a;旋转高斯分布&#xff08;Rotated Gaussian Distribution&#xff09;2.4.1 基于高斯策略的样本分配2…

车牌识别算法 基于yolov5的车牌检测+crnn中文车牌识别 支持12种中文车牌识别

yolov5 车牌识别算法&#xff0c;支持12种中文车牌类型 基于yolov5的车牌检测 车牌矫正以及 基于CRNN的车牌识别 1.单行蓝牌 2.单行黄牌 3.新能源车牌 4.白色警用车牌 5 教练车牌 6 武警车牌 7 双层黄牌 8 双层武警 9 使馆车牌 10 港澳牌车 11 双层农用车牌 12 民航车牌 效果如…

大陆车牌识别算法的背景与技术

我们写过一些关于车牌识别的相关算法发展&#xff0c;随着近两年车牌识别技术的发展、车牌类型的变化以及识别标准的规范化&#xff0c;我们重新梳理了关于大陆车牌识别的技术以及相关背景。文章主要分为三个部分&#xff0c;首先回顾一下目前大陆车牌的种类&#xff0c;第二部…

车牌识别调研总结

来自巴西阿雷格里港大学的学者发表于ECCV2018的论文 http://url.cn/5tnTl9p 《License Plate Detection and Recognition in Unconstrained Scenarios》&#xff0c;给出了一整套完整的车牌识别系统设计&#xff0c;着眼于解决在非限定场景有挑战的车牌识别应用&#xff0c;其性…

超高效车牌识别算法

核心参考文献 陈进 《车牌识别系统关键技术的研究》 文章相关下载资源 算法动态库 https://download.csdn.net/download/hobbitdream/10549960 演示工程 https://download.csdn.net/download/hobbitdream/10549965 算法基本实现原理 整个车牌识别算法包括两个部分&#x…

车牌识别算法实践(一):先验知识

一般来说&#xff0c;一个完整的车牌识别系统的处理流程包括图像输入、车牌提取、字符分割、字符识别和结果输出这五部分。其中车牌提取、字符分割和字符识别是较重要的部分&#xff0c;而车牌提取尤为关键&#xff0c;采用哪种算法或算法组合决定了整个系统的性能。 本人从多年…

基于matlab车牌识别算法

牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等&#xff0c;其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。某…

【毕业设计】深度学习 YOLO 实现车牌识别算法

文章目录 0 前言1 课题介绍2 算法简介2.1网络架构 3 数据准备4 模型训练5 实现效果5.1 图片识别效果5.2视频识别效果 6 部分关键代码7 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往…

LPRNet车牌识别算法?其实没有想象那么难

在停车场、小区的出入口&#xff0c;高速公路收费站&#xff0c;我们经常看到自动识别车辆车牌信息的机器&#xff0c;那么车牌识别是如何工作的呢&#xff1f;车牌识别系统应用主要用于记录车辆的车牌号码&#xff0c;出入时间&#xff0c;可实现自动化、规范化管理&#xff0…

车牌识别算法 matlab,车牌识别算法及其MATLAB实现

一.算法 读取拍摄图像-->截取车牌部分 --> 识别车牌 图像预处理: 将图像经过图像灰度化、图像增强、边缘提取、二值化等操作&#xff0c;转换成便于车牌定位的二值化图像&#xff1b; 车牌定位: 利用车牌的边缘、形状等特征&#xff0c;再结合Roberts 算子边缘检测、数字…

【最强最全车牌识别算法】支持13种中文车牌识别的云端API部署(可直接获取源码使用)

项目简介 在城市交通管理、视频监控、车辆识别和停车场管理中车辆检测与车牌识别是一项富有挑战而重要的任务。利用深度学习识别不同条件下的车辆及其车牌信息。更具体地说&#xff0c;实时目标检测网络&#xff08;Yolov5&#xff09;用于从车辆图像中提取特征并且通过训练对…

【老生谈算法】基于matlab的车牌识别算法详解及程序源码——车牌识别算法

基于matlab的车牌识别系统设计与算法原理 大家好&#xff0c;今天给大家介绍基于matlab的车牌识别系统设计与原理。 车牌识别系统&#xff08;License Plate Recognition &#xff0c;简称LPR&#xff09;是智能交通系统&#xff08;ITS&#xff09;的核心组成部分&#xff0c…