
Nuget: xiaofeng.net
| QQ -Gruppennummer | QQ -Gruppe | Offizielles Konto |
|---|---|---|
| 748408911 | ![]() | ![]() |
Quellcode: https://github.com/zhuovi/xiaofeng.net
Tutorial: https://www.yuque.com/fayelf/xiaofeng
Die Xiaofeng -Netzwerkbibliothek umfasst den Socket -Client und Server und kann auf einfache Weise Abonnements, Veröffentlichungen und andere Funktionen basierend auf der aktuellen Bibliothek implementieren.
Xiaofeng.net Generator mit xiaofeng.net.
.NET CLI
$ dotnet add package XiaoFeng.Net --version 3.1.5
Paketmanager
PM> Install-Package XiaoFeng.Net --Version 3.1.5
Packagereferenz
<PackageReference Include="XiaoFeng.Net" Version="3.1.5" />
Paket Cli
> paket add XiaoFeng.Net --version 3.1.5
Skript & interaktiv
> #r "nuget: XiaoFeng.Net, 3.1.5"
Kuchen
// Install XiaoFeng.Net as a Cake Addin
#addin nuget:?package=XiaoFeng.Net&version=3.1.5
// Install XiaoFeng.Net as a Cake Tool
#tool nuget:?package=XiaoFeng.Net&version=3.1.5
1. Beheben Sie den Fehler, wenn SocketClient mit DNS verbunden ist.
1. Optimieren Sie das Urteil über den Mindest- und Maximalwert von NetworkDelay in SocketClient;
2. Optimieren Sie den Fehler in SocketClient, bei dem der Host mit IP angeschlossen ist.
3.. Optimieren Sie Xiaofeng.net.WebsocketClient Request Header;
4. Optimieren Sie den Netzwerkclient;
1. Optimieren Sie die Fehler, die gelegentlich Verbindungen verweigern, wenn der Server WebSocket -Clients empfängt, wenn die Netzwerkverzögerungszeit verwendet wird.
2.SocketServer und SocketClient Add NetworkDelay Network Delay Attribut;
3.. Optimieren Sie die Akzept -CPClient -Methode in SocketServer;
1. Optimieren Sie SocketClient, Fehler, die auf dem WebSocket -Client nicht ausgepackt sind.
2. Optimieren Sie den Fehler, bei dem der SocketClient nur das OnMessage -Ereignis aufgerufen wird, nicht jedoch das OnMessageByte -Ereignis für die erste Verbindung.
3.Socketclient erhöht die letzte Kommunikationszeit von LastMessAgetime und der Verbindungszeit von ConnectedTime.
4. Optimieren Sie die Identifizierung, ob der Kunde WebSocket oder Socket ist.
5.SocketClient -Verbindungsmethode fügt den Rückgabetyp hinzu.
1. Das Problem behoben, dass der Server die Nachricht nicht empfangen kann, wenn Postman ständig Nachrichten unter SSL sendet.
1. Fügen Sie die Immobilie WebsocketRequest in WebSocketClient zu den Informationen zu den Client -Anfragen hinzu.
2. WebSocketClient fügt die starttransfer-Daten-WebSocketRequestoptions hinzu.
3.. Anmerkungen zur Socket -Netzwerkbibliothek optimieren;
4. Das Fehler, bei dem Socketserver jedes Mal, wenn er eine Nachricht empfängt, einen neuen Verbindungsrückruf sendet.
1. Schreiben Sie die Socket -Bibliothek, SocketServer, WebSocketServer, SocketClient, WebSocketClient neu;
| Namespace | Klassenbibliothek | Open Source -Status | veranschaulichen | Beinhaltet Funktionen |
|---|---|---|---|---|
| Xiaofeng.Prototype | Xiaofeng.core | Erweiterte Bibliothek | TOP -TYPE -Konvertierung Totimestamp, Totimestamps Zeit bis zum Zeitstempel GetBasepath erhält den absoluten Pfad der Datei, unterstützt Linux und Windows GetFileName erhält den Dateinamen GetMatch, getMatches, getMatchs, Ismatch, Ersatzpaten, REMEPATTENREIL -Expression Operation | |
| Xiaofeng.net | Xiaofeng.net | Netzwerkbibliothek | Die XiaoFeng -Netzwerkbibliothek umfasst den Socket -Client und der Server (Socket, WebSocket) und kann auf einfache Weise Abonnements, Veröffentlichungen und andere Funktionen basierend auf der aktuellen Bibliothek implementieren. | |
| Xiaofeng.http | Xiaofeng.core | Simulationsanforderungsbibliothek | Simulation von Netzwerkanfragen | |
| Xiaofeng.data | Xiaofeng.core | Datenbankbetriebsbibliothek | Unterstützen Sie Dutzende von Datenbanken wie SQLServer, MySQL, Oracle, Dameng, SQLite, Access, OLEDB, ODBC usw. | |
| Xiaofeng.cache | Xiaofeng.core | Cache -Bibliothek | Speichercache, Redis, memcachedcache, memoryCache, filecache cache | |
| Xiaofeng.config | Xiaofeng.core | Konfigurationsdateibibliothek | Generieren Sie automatisch Konfigurationsdateien, indem Sie Modelle erstellen, die sich im XML-, JSON-, INI -Dateiformat befinden können | |
| Xiaofeng.Cryptographie | Xiaofeng.core | Verschlüsselungsalgorithmusbibliothek | AES, DES, RSA, MD5, DES3, SHA, HMAC, RC4 -Verschlüsselungsalgorithmus | |
| Xiaofeng.excel | Xiaofeng.excel | Excel Operation Library | Excel -Operationen, erstellen Sie Excel, bearbeiten Sie Excel, lesen Sie Excel -Inhalte, Grenzen, Schriftarten, Stile und andere Funktionen | |
| Xiaofeng.ftp | Xiaofeng.ftp | FTP -Anforderungsbibliothek | FTP -Client | |
| Xiaofeng.io | Xiaofeng.core | Dateibetriebsbibliothek | Dateilesen und Schreiben von Vorgängen | |
| Xiaofeng.json | Xiaofeng.core | JSON -Serialisierung, Deserialisierungsbibliothek | JSON -Serialisierung, Deserialisierungsbibliothek | |
| Xiaofeng.xml | Xiaofeng.core | XML -Serialisierung, Deserialisierungsbibliothek | XML -Serialisierung, Deserialisierungsbibliothek | |
| Xiaofeng.log | Xiaofeng.core | Protokollbibliothek | Schreiben Sie Protokolldateien, Datenbanken | |
| Xiaofeng.Memcached | Xiaofeng.Memcached | Memcached Cache Library | Memcached Middleware unterstützt .NET Framework, .NET Kernel und .NET Standard Library, ein sehr bequemes Client -Tool. Implementieren Sie die Funktionen von Set, hinzufügen, ersetzen, vorbereiten, appendieren, cas, Get, Get, Gat, Gats, Löschen, Berühren, Statistiken, Statistiken, Statistiken, Statistikgrößen, Flush_all, Inkrement, Dekrement und Thread -Pooling. | |
| Xiaofeng.Redis | Xiaofeng.Redis | Redis -Cache -Bibliothek | Redis Middleware unterstützt .NET Framework, .NET Kernel und .NET Standard Library, ein sehr bequemes Client -Tool. Implementiert die Funktionen von Hash, Schlüssel, String, Zset, Stream, Protokoll, Liste, Abonnement und Veröffentlichung sowie Thread -Pooling; | |
| Xiaofeng.Threading | Xiaofeng.core | Threadbibliothek | Fadenaufgaben, Thread -Warteschlangen | |
| Xiaofeng.mvc | Xiaofeng.mvc | Webentwicklungsrahmen mit niedrigem Code | .NET CORE BASIC-Klasse, schnelle Entwicklung von CMS Framework, Real-Code-Plattform, eigene Rollenberechtigungen, WebAPI-Plattform, Hintergrundverwaltung, Hostable Service Run Commands: Application.Exe Service-Name-Service-Beschreibung, Befehl und Löschen von Löschen Start Start Stop Stop. | |
| Xiaofeng.proxy | Xiaofeng.proxy | Agentenbibliothek | In der Entwicklung | |
| Xiaofeng.tdengine | Xiaofeng.tdengine | Tdengine Client | In der Entwicklung | |
| Xiaofeng.gb28181 | Xiaofeng.gb28181 | Videoüberwachungsbibliothek, SIP -Bibliothek, GB28181 -Protokoll | In der Entwicklung | |
| Xiaofeng.onvif | Xiaofeng.onvif | Videoüberwachungsbibliothek ONVIF -Protokoll | Xiaofeng.Onvif verwendet C#, um die häufig verwendeten Schnittstellen, Geräte, Medien, Gimbale und andere Funktionen von ONVIF zu verkörpern. Es lehnt den WCF-Dienst ab, dynamische Proxy zu referenzieren, um WSDL-ähnliche Dateien zu generieren, und verwendet native XML-Erweiterungs-Markup-Sprache, um Parameter zu verkörpern. Alle Datenströme sind kontrollierbar. |
//新建一个服务端,同时支持websocket,socket客户端连接
var server = new NetServer < ServerSession > ( 8088 )
{
//是否启用ping
IsPing = true ,
//是否启用新行
IsNewLine = true ,
//传输编码
Encoding = System . Text . Encoding . UTF8 ,
//认证 认证不过则直接断开
SocketAuth = s =>
{
//判断 客户端是否符合认证,不符合则直接返回false即可
return true ;
}
} ;
server . OnStart += ( s , e ) =>
{
//服务端启动事件
Console . WriteLine ( $ "启动!- { DateTime . Now : yyyy-MM-dd HH:mm:ss.fffffff } " ) ;
} ;
server . OnNewConnection += ( s , e ) =>
{
//客户端新连接事件
Console . WriteLine ( $ "新连接- { DateTime . Now : yyyy-MM-dd HH:mm:ss.fffffff } " ) ;
//给当前客户端设置一个频道名 为后边按频道名发送作准备
//一个客户端可以订阅多个频道
//websocket可以从头里面获取标识
//如果非websocket 可以从消息里设置频道消息
if ( s . Headers . IndexOf ( "Channel:a" ) > 0 )
s . AddChannel ( "a" ) ;
else
s . AddChannel ( "b" ) ;
} ;
server . OnDisconnected += ( s , e ) =>
{
//客户端断开连接事件
Console . WriteLine ( $ "断开连接!- { DateTime . Now : yyyy-MM-dd HH:mm:ss.fffffff } " ) ;
} ;
server . OnMessage += ( s , m , e ) =>
{
//接收消息事件
if ( m . IndexOf ( "Channel:a" ) > 0 )
{
s . AddChannel ( "a" ) ;
return ;
}
else if ( m . IndexOf ( "Channel:b" ) > 0 )
{
s . AddChannel ( "b" ) ;
return ;
}
Console . WriteLine ( $ "消息- { m } - { DateTime . Now : yyyy-MM-dd HH:mm:ss.fffffff } " ) ;
//把当前消息发送到频道名为a的所有客户端
server . Send ( "a" , Encoding . UTF8 . GetBytes ( "消息" ) ) ;
//回复当前客户端消息
s . Send ( "消息" ) ;
//发送消息给所有客户端
server . Send ( "消息" ) ;
} ;
server . OnMessageByte += ( session , message , e ) =>
{
//接收消息事件
session . Send ( "回复客户端消息" ) ;
} ;
server . OnError += ( s , e ) =>
{
//服务端出错事件
Console . WriteLine ( $ "出错- { e . Message } - { DateTime . Now : yyyy-MM-dd HH:mm:ss.fffffff } " ) ;
} ;
server . OnClientError += ( session , e ) =>
{
//客户端出错事件
} ;
server . OnError += ( session , e ) =>
{
//服务端出错事件
} ;
server . OnStop += ( socket , e ) =>
{
//服务端停止事件
} ;
server . Start ( ) ;
//添加黑名单
server . AddIpBlack ( "10.10.10.10" ) ;
//移除黑名单
server . RemoveIpBlack ( "10.10.10.10" ) ;
//清空黑名单
server . ClearIpBlack ( ) ;
//断开所有客户端
server . ClearQueue ( ) ;
//在线客户端列表 复制出来的
var clients = server . GetData ( ) ;
//在线客户端列表 原列表
var clients1 = server . ConnectionSocketList ; var client = new XiaoFeng . Net . NetClient < XiaoFeng . Net . ClientSession > ( "127.0.0.1" , 8888 ) ;
client . OnStart += ( socket , e ) =>
{
//启动消息
} ;
client . OnClose += ( socket , e ) =>
{
//关闭消息
} ;
client . OnDisconnected += ( session , e ) => {
//断开连接消息
} ;
client . OnError += ( socket , e ) =>
{
//出错消息
} ;
client . OnMessageByte += ( session , message , e ) =>
{
//接收信息
} ;
//启动客户端
client . Start ( ) ;
client . Send ( "发送消息" ) ;
client . Subscribe ( "订阅频道" ) ;
client . UnSubscribe ( "取消订阅频道" ) ;