
Nuget: xiaofeng.net
| Nomor Grup QQ | Grup QQ | Akun resmi |
|---|---|---|
| 748408911 | ![]() | ![]() |
Kode Sumber: https://github.com/zhuovi/xiaofeng.net
Tutorial: https://www.yuque.com/fayelf/xiaofeng
Xiaofeng Network Library merangkum klien dan server soket, dan dapat dengan mudah menerapkan langganan, penerbitan, dan fungsi lainnya berdasarkan pustaka saat ini.
Xiaofeng.net Generator dengan xiaofeng.net.
.Net cli
$ dotnet add package XiaoFeng.Net --version 3.1.5
Manajer Paket
PM> Install-Package XiaoFeng.Net --Version 3.1.5
PackageReference
<PackageReference Include="XiaoFeng.Net" Version="3.1.5" />
Paket CLI
> paket add XiaoFeng.Net --version 3.1.5
Script & Interaktif
> #r "nuget: XiaoFeng.Net, 3.1.5"
Kue
// 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. Perbaiki bug saat socketclient terhubung ke DNS;
1. Mengoptimalkan penilaian nilai minimum dan maksimum NetworkDelay di SocketClient;
2. Optimalkan bug di socketclient di mana host terhubung ke IP;
3. Mengoptimalkan header permintaan Xiaofeng.net.websocketClient;
4. Mengoptimalkan klien jaringan;
1. Optimalkan bug yang sesekali menolak koneksi ketika server menerima klien WebSocket ketika waktu tunda jaringan digunakan.
2.SocketServer dan SocketClient Tambahkan Atribut Delay NetworkDelay Network;
3. Mengoptimalkan metode AcceptCpClient di SocketServer;
1. Mengoptimalkan soket, bug yang tidak dibongkar pada klien WebSocket;
2. Mengoptimalkan bug di mana socketclient hanya dipanggil pada acara OnMessage tetapi bukan acara OnMessageByte untuk koneksi pertama;
3.SocketClient meningkatkan waktu komunikasi terakhir dari LastMessageTime dan waktu koneksi ConnectedTime;
4. Mengoptimalkan identifikasi apakah klien adalah Websocket atau Socket;
5.SocketClient Connection Metode Menambahkan tipe pengembalian;
1. Memperbaiki masalah bahwa server tidak dapat menerima pesan ketika tukang pos terus mengirim pesan di bawah SSL;
1. Tambahkan properti WebSocketRequest di WebSocketClient ke informasi permintaan klien;
2. WebSocketClient menambahkan data start-transfer WebSocketRequestOptions;
3. Mengoptimalkan Anotasi Perpustakaan Jaringan Soket;
4. Memperbaiki bug di mana SocketServer mengirimkan panggilan balik koneksi baru setiap kali ia menerima pesan;
1. Tulis ulang Pustaka Soket, SocketServer, WebSocketServer, SocketClient, WebSocketClient;
| Namespace | Perpustakaan Kelas | Status sumber terbuka | menjelaskan | Termasuk fungsi |
|---|---|---|---|---|
| Xiaofeng.prototype | Xiaofeng.core | Perpustakaan yang diperluas | Konversi tipe TOCE Totimestamp, waktu totimestamps untuk cap waktu GetBasePath mendapatkan jalur absolut dari file, mendukung Linux dan Windows GetFilename mendapatkan nama file GetMatch, getMatch, getMatchs, iSmatch, ReplacePatten, Remestpattern Reguling Expression Operation | |
| Xiaofeng.net | Xiaofeng.net | Perpustakaan Jaringan | Xiaofeng Network Library merangkum klien dan server soket (soket, WebSocket), dan dapat dengan mudah menerapkan langganan, penerbitan, dan fungsi lainnya berdasarkan pustaka saat ini. | |
| Xiaofeng.http | Xiaofeng.core | Perpustakaan Permintaan Simulasi | Mensimulasikan permintaan jaringan | |
| Xiaofeng.data | Xiaofeng.core | Perpustakaan Operasi Database | Dukung lusinan database seperti SQLServer, MySQL, Oracle, Dameng, SQLite, Access, OLEDB, ODBC, dll. | |
| Xiaofeng.cache | Xiaofeng.core | Perpustakaan cache | Cache Memory, Redis, MemcachedCache, MemoryCache, FileCache Cache | |
| Xiaofeng.config | Xiaofeng.core | Perpustakaan File Konfigurasi | Secara otomatis menghasilkan file konfigurasi dengan membuat model, yang dapat di format file XML, JSON, INI | |
| Xiaofeng.cryptography | Xiaofeng.core | Perpustakaan Algoritma Enkripsi | AES, DES, RSA, MD5, DES3, SHA, HMAC, Algoritma Enkripsi RC4 | |
| Xiaofeng.excel | Xiaofeng.excel | Perpustakaan Operasi Excel | Operasi Excel, Buat Excel, Edit Excel, Baca Konten Excel, Batas, Font, Gaya dan Fungsi Lainnya | |
| Xiaofeng.ftp | Xiaofeng.ftp | Perpustakaan Permintaan FTP | Klien FTP | |
| Xiaofeng.io | Xiaofeng.core | Perpustakaan Operasi File | File baca dan tulis file | |
| Xiaofeng.json | Xiaofeng.core | Serialisasi JSON, perpustakaan deserialisasi | Serialisasi JSON, perpustakaan deserialisasi | |
| Xiaofeng.xml | Xiaofeng.core | Serialisasi XML, perpustakaan deserialisasi | Serialisasi XML, perpustakaan deserialisasi | |
| Xiaofeng.log | Xiaofeng.core | Perpustakaan Log | Tulis file log, database | |
| Xiaofeng.memcached | Xiaofeng.memcached | Perpustakaan Cache Memcached | Memcached Middleware mendukung .NET Framework, .NET Kernel dan .NET Standard Library, alat klien yang sangat nyaman. Terapkan fungsi set, tambah, ganti, prepend, tambahkan, cas, get, get, gat, gats, hapus, sentuh, statistik, item statistik, lempengan statistik, ukuran statistik, flush_all, peningkatan, pengurangan, dan pengumpulan utas. | |
| Xiaofeng.redis | Xiaofeng.redis | Perpustakaan Cache Redis | Redis Middleware mendukung .NET Framework, .NET kernel dan .NET Standard Library, alat klien yang sangat nyaman. Mengimplementasikan fungsi hash, kunci, string, zset, stream, log, daftar, berlangganan dan penerbitan, dan pengumpulan utas; | |
| Xiaofeng.Threading | Xiaofeng.core | Perpustakaan Thread | Tugas utas, antrian utas | |
| Xiaofeng.mvc | Xiaofeng.mvc | Kerangka Pengembangan Web Kode Rendah | .NET Core Basic Class, Pengembangan Cepat Kerangka CMS, Platform Kode Rendah Nyata, Izin Peran Sendiri, Platform WebAPI, Manajemen Latar Belakang, Perintah Jalankan Layanan yang Dapat Dihosting: Aplikasi | |
| Xiaofeng.proxy | Xiaofeng.proxy | Perpustakaan Agen | Dalam pengembangan | |
| Xiaofeng.tdengine | Xiaofeng.tdengine | Klien tdengine | Dalam pengembangan | |
| Xiaofeng.gb28181 | Xiaofeng.gb28181 | Perpustakaan Video Pengawasan, Perpustakaan SIP, Protokol GB28181 | Dalam pengembangan | |
| Xiaofeng.onvif | Xiaofeng.onvif | Video Surveillance Library ONVIF Protocol | Xiaofeng.onvif menggunakan C# untuk merangkum antarmuka, perangkat, media, gimbal, dan fungsi lainnya yang umum digunakan berdasarkan platform .net. Ini menolak layanan WCF untuk merujuk proxy dinamis untuk menghasilkan file seperti WSDL, dan menggunakan bahasa markup ekstensi XML asli untuk merangkum parameter. Semua aliran data dapat dikendalikan. |
//新建一个服务端,同时支持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 ( "取消订阅频道" ) ;