
Nuget: Xiaofeng.net
| หมายเลขกลุ่ม QQ | กลุ่ม QQ | บัญชีอย่างเป็นทางการ |
|---|---|---|
| 748408911 | ![]() | ![]() |
ซอร์สโค้ด: https://github.com/zhuovi/xiaofeng.net
การสอน: https://www.yuque.com/fayelf/xiaofeng
ไลบรารีเครือข่าย Xiaofeng ห่อหุ้มไคลเอนต์ซ็อกเก็ตและเซิร์ฟเวอร์และสามารถใช้การสมัครสมาชิกการเผยแพร่และฟังก์ชั่นอื่น ๆ ตามไลบรารีปัจจุบันได้อย่างง่ายดาย
Xiaofeng.net Generator กับ Xiaofeng.net
.NET CLI
$ dotnet add package XiaoFeng.Net --version 3.1.5
ผู้จัดการแพ็คเกจ
PM> Install-Package XiaoFeng.Net --Version 3.1.5
การส่งมอบ
<PackageReference Include="XiaoFeng.Net" Version="3.1.5" />
PAKET CLI
> paket add XiaoFeng.Net --version 3.1.5
สคริปต์และการโต้ตอบ
> #r "nuget: XiaoFeng.Net, 3.1.5"
เค้ก
// 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. แก้ไขข้อผิดพลาดเมื่อซ็อกเก็ตไซต์เชื่อมต่อกับ DNS;
1. เพิ่มประสิทธิภาพการตัดสินของค่าต่ำสุดและสูงสุดของ NetworkDelay ใน SocketClient;
2. เพิ่มประสิทธิภาพข้อผิดพลาดในซ็อกเก็ต client โดยที่โฮสต์เชื่อมต่อกับ IP;
3. เพิ่มประสิทธิภาพส่วนหัวคำขอ xiaofeng.net.websocketClient;
4. เพิ่มประสิทธิภาพไคลเอนต์เครือข่าย;
1. เพิ่มประสิทธิภาพข้อบกพร่องที่บางครั้งปฏิเสธการเชื่อมต่อเมื่อเซิร์ฟเวอร์ได้รับไคลเอนต์ WebSocket เมื่อใช้เวลาหน่วงของเครือข่าย
2. SocketServer และ SocketClient เพิ่มแอตทริบิวต์การหน่วงเครือข่ายเครือข่าย
3. เพิ่มประสิทธิภาพวิธีการยอมรับ tcpClient ใน Socketserver;
1. เพิ่มประสิทธิภาพซ็อกเก็ต client, ข้อบกพร่องที่ไม่ได้แกะบนไคลเอนต์ WebSocket;
2. เพิ่มประสิทธิภาพข้อผิดพลาดที่ซ็อกเก็ต callient เรียกใช้เฉพาะเหตุการณ์ onMessage แต่ไม่ใช่เหตุการณ์ onMessageByte สำหรับการเชื่อมต่อครั้งแรก;
3. SocketClient เพิ่มเวลาการสื่อสารครั้งสุดท้ายของ LastMessagetime และเวลาเชื่อมต่อ ConnectedTime;
4. เพิ่มประสิทธิภาพการระบุว่าลูกค้าเป็น websocket หรือซ็อกเก็ต;
5. วิธีการเชื่อมต่อ SocketClient เพิ่มประเภทการส่งคืน
1. แก้ไขปัญหาที่เซิร์ฟเวอร์ไม่สามารถรับข้อความได้เมื่อบุรุษไปรษณีย์ส่งข้อความภายใต้ SSL อย่างต่อเนื่อง
1. เพิ่มคุณสมบัติ WebSocketRequest ใน WebSocketClient ลงในข้อมูลคำขอไคลเอนต์
2. WebSocketClient เพิ่มข้อมูลเริ่มต้นการถ่ายโอน websocketRequestoptions;
3. เพิ่มประสิทธิภาพคำอธิบายประกอบไลบรารีเครือข่ายซ็อกเก็ต;
4. แก้ไขข้อผิดพลาดที่ SocketServer ส่งการเชื่อมต่อการเชื่อมต่อใหม่ทุกครั้งที่เขาได้รับข้อความ
1. เขียนห้องสมุดซ็อกเก็ตใหม่, SocketServer, WebSocketServer, SocketClient, WebSocketClient;
| เนมสเปซ | ห้องสมุดชั้นเรียน | สถานะโอเพ่นซอร์ส | อธิบาย | รวมถึงฟังก์ชั่น |
|---|---|---|---|---|
| Xiaofeng.prototype | Xiaofeng.Core | ขยายห้องสมุด | การแปลงประเภท tocase Totimestamp, Totimestamps เวลาในการประทับเวลา GetBasePath ได้รับเส้นทางที่แน่นอนของไฟล์รองรับ Linux และ Windows getFileName รับชื่อไฟล์ getMatch, getMatches, getMatchs, ismatch, replacepatten, removepattern การแสดงออกปกติ | |
| xiaofeng.net | xiaofeng.net | ห้องสมุดเครือข่าย | ห้องสมุดเครือข่าย Xiaofeng ห่อหุ้มซ็อกเก็ตไคลเอนต์และเซิร์ฟเวอร์ (ซ็อกเก็ต, WebSocket) และสามารถใช้การสมัครสมาชิกการเผยแพร่และฟังก์ชั่นอื่น ๆ ตามไลบรารีปัจจุบันได้อย่างง่ายดาย | |
| xiaofeng.http | Xiaofeng.Core | ห้องสมุดคำขอจำลอง | จำลองคำขอเครือข่าย | |
| Xiaofeng.Data | Xiaofeng.Core | ไลบรารีการทำงานของฐานข้อมูล | สนับสนุนฐานข้อมูลหลายสิบแห่งเช่น SQLServer, MySQL, Oracle, Dameng, SQLite, Access, OLEDB, ODBC ฯลฯ | |
| Xiaofeng.cache | Xiaofeng.Core | ห้องสมุดแคช | แคชหน่วยความจำ, redis, memcachedcache, memorycache, cache filecache | |
| Xiaofeng.Config | Xiaofeng.Core | ไลบรารีไฟล์การกำหนดค่า | สร้างไฟล์การกำหนดค่าโดยอัตโนมัติโดยการสร้างโมเดลซึ่งสามารถอยู่ใน XML, JSON, รูปแบบไฟล์ INI | |
| Xiaofeng.Cryptography | Xiaofeng.Core | ห้องสมุดอัลกอริทึมการเข้ารหัส | AES, DES, RSA, MD5, DES3, SHA, HMAC, อัลกอริทึมการเข้ารหัส RC4 | |
| Xiaofeng.excel | Xiaofeng.excel | ไลบรารีการดำเนินงาน Excel | การดำเนินการ Excel สร้าง Excel, แก้ไข Excel, อ่านเนื้อหา Excel, เส้นขอบ, แบบอักษร, สไตล์และฟังก์ชั่นอื่น ๆ | |
| Xiaofeng.ftp | Xiaofeng.ftp | ไลบรารีคำขอ FTP | ไคลเอนต์ FTP | |
| xiaofeng.io | Xiaofeng.Core | ไลบรารีการทำงานของไฟล์ | การดำเนินการอ่านและเขียน | |
| xiaofeng.json | Xiaofeng.Core | การทำให้เป็นอนุกรม JSON, Deserialization Library | การทำให้เป็นอนุกรม JSON, Deserialization Library | |
| xiaofeng.xml | Xiaofeng.Core | XML Serialization, Deserialization Library | XML Serialization, Deserialization Library | |
| xiaofeng.log | Xiaofeng.Core | ห้องสมุดบันทึก | เขียนไฟล์บันทึกฐานข้อมูล | |
| Xiaofeng.Memcached | Xiaofeng.Memcached | ห้องสมุดแคช Memcached | Memcached Middleware รองรับ. NET Framework, .NET เคอร์เนลและไลบรารีมาตรฐาน. NET ซึ่งเป็นเครื่องมือไคลเอนต์ที่สะดวกมาก ใช้ฟังก์ชั่นของชุด, เพิ่ม, แทนที่, เติมเงิน, ภาคผนวก, CAS, รับ, รับ, GAT, GAT, GAT, ลบ, สัมผัส, สถิติ, รายการสถิติ, แผ่นสถิติ, ขนาดสถิติ, flush_all, การเพิ่ม, การลดลงและการรวมเธรด | |
| Xiaofeng.redis | Xiaofeng.redis | Redis Cache Library | Redis Middleware รองรับ. NET Framework, .NET เคอร์เนลและไลบรารีมาตรฐาน. NET ซึ่งเป็นเครื่องมือไคลเอนต์ที่สะดวกมาก ใช้ฟังก์ชั่นของแฮช, คีย์, สตริง, ZSET, สตรีม, บันทึก, รายการ, รายการ, การสมัครสมาชิกและการเผยแพร่และการรวมเธรด | |
| Xiaofeng.Threading | Xiaofeng.Core | ไลบรารีเธรด | งานด้ายคิวเธรด | |
| xiaofeng.mvc | xiaofeng.mvc | เฟรมเวิร์กการพัฒนาเว็บรหัสต่ำ | .NET CORE BASIC Class, การพัฒนาอย่างรวดเร็วของกรอบ CMS, แพลตฟอร์มรหัสต่ำจริง, สิทธิ์บทบาทของตัวเอง, แพลตฟอร์ม WebAPI, การจัดการพื้นหลัง, คำสั่งการเรียกใช้บริการที่โฮสต์: Application.exe ติดตั้งชื่อบริการคำอธิบายบริการคำสั่งและลบเริ่มหยุดหยุดหยุด | |
| Xiaofeng.Proxy | Xiaofeng.Proxy | Agent Library | อยู่ระหว่างการพัฒนา | |
| xiaofeng.tdengine | xiaofeng.tdengine | ไคลเอนต์ TdEngine | อยู่ระหว่างการพัฒนา | |
| xiaofeng.gb28181 | xiaofeng.gb28181 | ห้องสมุดการเฝ้าระวังวิดีโอ, ห้องสมุด SIP, โปรโตคอล GB28181 | อยู่ระหว่างการพัฒนา | |
| Xiaofeng.onvif | Xiaofeng.onvif | ห้องสมุดการเฝ้าระวังวิดีโอ ONVIF | Xiaofeng.onvif ใช้ C# เพื่อห่อหุ้มอินเตอร์เฟสอุปกรณ์อุปกรณ์สื่อ gimbals และฟังก์ชั่นอื่น ๆ ตามแพลตฟอร์ม. NET มันปฏิเสธบริการ WCF เพื่ออ้างอิงพร็อกซีแบบไดนามิกเพื่อสร้างไฟล์ที่มีลักษณะคล้าย WSDL และใช้ภาษามาร์กอัป XML ส่วนขยายแบบดั้งเดิมเพื่อห่อหุ้มพารามิเตอร์ การไหลของข้อมูลทั้งหมดสามารถควบคุมได้ |
//新建一个服务端,同时支持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 ( "取消订阅频道" ) ;