
nuget:xiaofeng.net
| QQグループ番号 | QQグループ | 公式アカウント |
|---|---|---|
| 748408911 | ![]() | ![]() |
ソースコード:https://github.com/zhuovi/xiaofeng.net
チュートリアル:https://www.yuque.com/fayelf/xiaofeng
Xiaofengネットワークライブラリは、Socket ClientとServerをカプセル化し、現在のライブラリに基づいてサブスクリプション、公開、その他の機能を簡単に実装できます。
xiaofeng.net xiaofeng.netを備えた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" />
パケット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. SocketClientがDNSに接続されているときにバグを修正します。
1. SocketClientのNetworkDelayの最小値と最大値の判断を最適化します。
2。ホストがIPに接続されているSocketClientのバグを最適化します。
3。Xiaofeng.net.websocketclientリクエストヘッダーを最適化します。
4.ネットワーククライアントを最適化します。
1.ネットワークの遅延時間を使用すると、サーバーがWebsocketクライアントを受信したときに接続を拒否するバグを最適化します。
2.ソケットサーバーとsocketclient NetworkDelayネットワーク遅延属性を追加します。
3.SocketServerのAcceptTCPClientメソッドを最適化します。
1. WebSocketクライアントに開梱されていないバグを最適化します。
2。ソケットクライアントがオンメッセージイベントでのみ呼び出されるが、最初の接続ではonmessageByteイベントではないバグを最適化します。
3.SocketClient LastMessagetimeの最後の通信時間とConnectedTime Connection Timeを増加させます。
4.クライアントがWebsocketまたはSocketであるかどうかの識別を最適化します。
5.SocketClient接続メソッドは、返品タイプを追加します。
1. PostmanがSSLの下で絶えずメッセージを送信しているときに、サーバーがメッセージを受信できないという問題を修正しました。
1. WebSocketClientのプロパティWebSocketRequestをクライアントリクエスト情報に追加します。
2。WebSocketClientは、起動転送データWebSocketRequestoptionsを追加します。
3.ソケットネットワークライブラリの注釈を最適化します。
4. SocketServerがメッセージを受信するたびに新しい接続コールバックを送信するバグを修正しました。
1. Socket Library、SocketServer、WebSocketServer、SocketClient、WebSocketClientを書き換えます。
| 名前空間 | クラスライブラリ | オープンソースのステータス | 説明します | 関数が含まれています |
|---|---|---|---|---|
| xiaofeng.prototype | xiaofeng.core | 拡張ライブラリ | トース型変換 Totimestamp、Totimestamsはタイムスタンプまでの時間です GetBasepathはファイルの絶対パスを取得し、LinuxとWindowsをサポートします getFileNameはファイル名を取得します getMatch、getMatches、getMatchs、iSMatch、latePatten、removePattern正規表現操作 | |
| xiaofeng.net | xiaofeng.net | ネットワークライブラリ | Xiaofengネットワークライブラリは、ソケットクライアントとサーバー(Socket、Websocket)をカプセル化し、現在のライブラリに基づいてサブスクリプション、公開、その他の機能を簡単に実装できます。 | |
| xiaofeng.http | xiaofeng.core | シミュレーションリクエストライブラリ | ネットワークリクエストをシミュレートします | |
| xiaofeng.data | xiaofeng.core | データベース操作ライブラリ | SQLServer、MySQL、Oracle、Dameng、SQLite、Access、OLEDB、ODBCなどの数十のデータベースをサポートします。 | |
| xiaofeng.cache | xiaofeng.core | キャッシュライブラリ | メモリキャッシュ、redis、memcachedcache、memorycache、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 Operation Library | Excel Operations、Excelの作成、Excelの編集、Excelコンテンツ、境界、フォント、スタイル、その他の機能の読み取り | |
| xiaofeng.ftp | xiaofeng.ftp | FTPリクエストライブラリ | FTPクライアント | |
| xiaofeng.io | xiaofeng.core | ファイル操作ライブラリ | ファイルの読み取りおよび書き込み操作 | |
| xiaofeng.json | xiaofeng.core | JSON Serialization、Deserialization Library | JSON Serialization、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フレームワーク、.NETカーネル、.NET標準ライブラリをサポートしています。セット、追加、交換、prepend、append、cas、get、get、gat、gats、削除、タッチ、統計、統計、統計スラブ、統計、flush_all、increment、decrement、and threadプーリングの関数を実装します。 | |
| xiaofeng.redis | xiaofeng.redis | Redisキャッシュライブラリ | Redis Middlewareは、非常に便利なクライアントツールである.NETフレームワーク、.NETカーネル、.NET標準ライブラリをサポートしています。ハッシュ、キー、文字列、zset、stream、log、list、subscription and publishing、およびスレッドプーリングの機能を実装します。 | |
| xiaofeng.threading | xiaofeng.core | スレッドライブラリ | スレッドタスク、スレッドキュー | |
| xiaofeng.mvc | xiaofeng.mvc | ローコードWeb開発フレームワーク | .NETコアベーシッククラス、CMSフレームワークの迅速な開発、リアルローコードプラットフォーム、独自の役割許可、WebAPIプラットフォーム、バックグラウンド管理、ホステル可能なサービス実行コマンド:Application.exeインストールサービス名サービス | |
| xiaofeng.proxy | xiaofeng.proxy | エージェントライブラリ | 開発中 | |
| xiaofeng.tdengine | xiaofeng.tdengine | tdengineクライアント | 開発中 | |
| xiaofeng.gb28181 | xiaofeng.gb28181 | ビデオサーベイランスライブラリ、SIPライブラリ、GB28181プロトコル | 開発中 | |
| xiaofeng.onvif | xiaofeng.onvif | ビデオ監視ライブラリONVIFプロトコル | XiaOfeng.Onvifは、C#を使用して、.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 ( "取消订阅频道" ) ;