
NUGET: Xiaofeng.net
| Número do grupo QQ | Grupo QQ | Conta oficial |
|---|---|---|
| 748408911 | ![]() | ![]() |
Código fonte: https://github.com/zhuovi/xiaofeng.net
Tutorial: https://www.yuque.com/fayelf/xiaofeng
A Biblioteca de Rede Xiaofeng encapsula o Socket Client and Server e pode implementar facilmente assinatura, publicação e outras funções com base na biblioteca atual.
Xiaofeng.net gerador com xiaofeng.net.
.NET CLI
$ dotnet add package XiaoFeng.Net --version 3.1.5
Gerente de pacotes
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 e interativo
> #r "nuget: XiaoFeng.Net, 3.1.5"
Bolo
// 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. Corrija o bug quando o SocketClient é conectado ao DNS;
1. Otimize o julgamento do valor mínimo e máximo do NetworkDelay no soquete;
2. Otimize o bug no SocketClient onde o host está conectado ao IP;
3. Otimize o cabeçalho da solicitação xiaofeng.net.webSocketclient;
4. Otimize o cliente de rede;
1. Otimize os erros que ocasionalmente recusam conexões quando o servidor recebe clientes da WebSocket quando o tempo de atraso da rede é usado.
2.SocketServer e SocketClient Adicionar atributo de atraso da rede de redelay;
3. Otimize o método AcepTCPClient no SocketServer;
1. Otimize o soquete, bugs que não são descompactados no WebSocket Client;
2. Otimize o bug em que o SocketClient é chamado apenas no evento OnMessage, mas não no evento OnMessageByte para a primeira conexão;
3.SocketClient Aumenta o último tempo de comunicação do último tempo e o tempo de conexão de conexão;
4. Otimize a identificação de se o cliente é WebSocket ou Socket;
5.SocketClient Connection Método adiciona o tipo de retorno;
1. Corrigido o problema de que o servidor não pode receber a mensagem quando o Postman estiver enviando mensagens constantemente no SSL;
1. Adicione a propriedade WebSocketRequest no WebSocketClient às informações de solicitação do cliente;
2. WebSocketClient adiciona os dados de transferência inicial WebSocketReQuestOptions;
3. Otimizar anotações da biblioteca de rede de soquete;
4. Corrigido o bug em que o SocketServer envia um novo retorno de chamada de conexão toda vez que recebe uma mensagem;
1. Reescreva a biblioteca do soquete, SocketServer, WebSocketServer, SocketClient, WebSocketClient;
| Espaço para nome | Biblioteca de classe | Status de código aberto | ilustrar | Inclui funções |
|---|---|---|---|---|
| Xiaofeng.prototype | Xiaofeng.core | Biblioteca estendida | Tipo de conversão de tipo TOTIMESTAMP, TOTIMESTAMPS TEMPO AO TIMESTAMP GetBasepath recebe o caminho absoluto do arquivo, suporta Linux e Windows GetFilename recebe o nome do arquivo GetMatch, GetMatches, GetMatchs, IsMatch, Substituirpatten, Removerpattern Operação de expressão regular | |
| Xiaofeng.net | Xiaofeng.net | Biblioteca de rede | A Biblioteca de Rede Xiaofeng encapsula o Socket Client and Server (soquete, WebSocket) e pode implementar facilmente assinatura, publicação e outras funções com base na biblioteca atual. | |
| Xiaofeng.http | Xiaofeng.core | Biblioteca de solicitação de simulação | Simular solicitações de rede | |
| Xiaofeng.data | Xiaofeng.core | Biblioteca de operação do banco de dados | Suporte a dezenas de bancos de dados como SQLServer, MySQL, Oracle, Dameng, Sqlite, Access, OLEDB, ODBC, etc. | |
| Xiaofeng.cache | Xiaofeng.core | Biblioteca de cache | Cache de memória, Redis, MemcachedCache, MemoryCache, FileCache Cache | |
| Xiaofeng.config | Xiaofeng.core | Biblioteca de arquivos de configuração | Gerar automaticamente arquivos de configuração criando modelos, que podem estar no formato de arquivo XML, JSON, INI | |
| Xiaofeng.criptografia | Xiaofeng.core | Biblioteca de algoritmo de criptografia | AES, DES, RSA, MD5, DES3, SHA, HMAC, RC4 Algoritmo de criptografia | |
| Xiaofeng.excel | Xiaofeng.excel | Excel Operation Library | Operações do Excel, Criar Excel, Editar Excel, Read Conteúdo do Excel, Fronteiras, Fontes, Estilos e outras funções | |
| Xiaofeng.ftp | Xiaofeng.ftp | Biblioteca de solicitações de FTP | Cliente FTP | |
| Xiaofeng.io | Xiaofeng.core | Biblioteca de operação de arquivo | Operações de leitura e gravação do arquivo | |
| Xiaofeng.json | Xiaofeng.core | Biblioteca de Serialização, Deserialização JSON | Biblioteca de Serialização, Deserialização JSON | |
| Xiaofeng.xml | Xiaofeng.core | Biblioteca de serialização XML, Deserialização | Biblioteca de serialização XML, Deserialização | |
| Xiaofeng.log | Xiaofeng.core | Biblioteca de log | Escreva arquivos de log, bancos de dados | |
| Xiaofeng.memcached | Xiaofeng.memcached | Biblioteca de cache em memcached | O middleware do Memcached suporta o .NET Framework, .Net Kernel e .NET Standard Library, uma ferramenta de cliente muito conveniente. Implementar as funções de conjunto, adicionar, substituir, prender, anexar, CAS, obter, obter, gat, gats, excluir, tocar, estatísticas, itens de estatísticas, lajes de estatísticas, tamanhos de estatísticas, flush_all, incremento, decréscimo e pool de threads. | |
| Xiaofeng.redis | Xiaofeng.redis | Biblioteca de cache Redis | O Redis Middleware suporta a estrutura .NET, .NET Kernel e .NET Standard Library, uma ferramenta de cliente muito conveniente. Implementa as funções de hash, chave, string, zset, fluxo, log, listar, assinatura e publicação e pool de threads; | |
| Xiaofeng.Threading | Xiaofeng.core | Biblioteca de threads | Tarefas de encadeamento, filas de threads | |
| Xiaofeng.mvc | Xiaofeng.mvc | Estrutura de desenvolvimento da web de baixo código | .NET CORE BASIC CLASS, RAPIDO DESENVOLVIMENTO DO CMS Framework, Plataforma de baixo código real, Permissões de função própria, plataforma webapi, gerenciamento de fundo, comandos de execução de serviço de serviço: Application.exe Instalação Nome do serviço Descrição do serviço, comando e excluir excluir inicialização Start Stop Stop. | |
| Xiaofeng.proxy | Xiaofeng.proxy | Biblioteca de agentes | Em desenvolvimento | |
| Xiaofeng.tdengine | Xiaofeng.tdengine | Cliente tdengine | Em desenvolvimento | |
| Xiaofeng.gb28181 | Xiaofeng.gb28181 | Biblioteca de Video Surveillance, Biblioteca SIP, Protocolo GB28181 | Em desenvolvimento | |
| Xiaofeng.onvif | Xiaofeng.onvif | Protocolo ONVIF da biblioteca de vigilância por vídeo | Xiaofeng.onvif usa C# para encapsular as interfaces, dispositivos, mídia, gimbals e outras funções usadas da ONVIF com base na plataforma .NET. Ele recusa o serviço WCF para fazer referência ao proxy dinâmico para gerar arquivos do tipo WSDL e usa o idioma de marcação de extensão XML nativo para encapsular parâmetros. Todos os fluxos de dados são controláveis. |
//新建一个服务端,同时支持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 ( "取消订阅频道" ) ;