XAsyncSockets é uma biblioteca Python/MicroPython eficiente de soquetes assíncronos gerenciados.
Muito fácil de integrar e muito leve com apenas um arquivo:
Recursos do XAsyncSockets:
- Soquetes assíncronos gerenciados em um pool (até milhares!)
- Funciona diretamente com I/O para receber e enviar muito rapidamente
- Suporta um grande número de conexões TCP simultâneas
- Suporta operações de processamento síncrono simultâneo, se necessário (threaded)
- Implementação de servidores TCP
- Implementação de clientes TCP
- Implementação de datagramas UDP (remetente e/ou receptor)
- O cliente TCP pode ocorrer após um tamanho especificado de dados ou uma linha de texto recebida
- Cada conexão e recebimento pode esperar durante um tempo especificado
- Os motivos dos fechamentos do cliente TCP são retornados
- Realmente robusto, muito rápido e fácil de usar
- Compatível com implementação MicroPython (camada de soquetes, fila FiFo, contador de desempenho)
Classes XAsyncSockets :
Nome da classe | Descrição |
---|
XAsyncSocketsPool | Conjunto gerenciado de objetos 'XAsyncSocket' |
XClosedRazão | Enumerador de motivos de fechamento de 'XAsyncSocket' |
XAsyncSocket | Classe abstrata de soquetes assíncronos gerenciados |
XAsyncTCPServer | Implementação do servidor TCP de 'XAsyncSocket' |
XAsyncTCPClient | Implementação do cliente TCP de 'XAsyncSocket' |
XAsyncUDPDatagrama | Implementação do remetente/receptor UDP de 'XAsyncSocket' |
XBufferSlot | Buffer gerenciado |
XBufferSlots | Coleta de buffers gerenciados |
XFiFo | Fila FiFo dedicada |
Exceções XAsyncSockets :
Nome da classe | Descrição |
---|
XAsyncSocketsPoolException | Classe de exceção para 'XAsyncSocketsPool' |
XAsyncSocketException | Classe de exceção para 'XAsyncSocket' |
XAsyncTCPServerException | Classe de exceção para 'XAsyncTCPServer' |
XAsyncTCPClientException | Classe de exceção para 'XAsyncTCPClient' |
XAsyncUDPDatagramException | Classe de exceção para 'XAsyncUDPDatagram' |
XFiFoException | Classe de exceção para 'XFiFo' |
Detalhes da classe XAsyncSocketsPool :
Método | Argumentos |
---|
Construtor | Nenhum |
GetAllAsyncSockets | Nenhum |
GetAsyncSocketByID | id (int) |
AsyncWaitEvents | threadsCount=0 (int) |
StopWaitEvents | Nenhum |
Propriedade | Detalhes |
---|
WaitEventsProcessing | Retorna True se "WaitEvents" estiver em processamento |
(Não chame diretamente os métodos AddAsyncSocket
, RemoveAsyncSocket
, NotifyNextReadyForReading
e NotifyNextReadyForWriting
)
Detalhes da classe XClosedReason :
Variável estática | Valor |
---|
Erro | 0x00 |
FechadoByHost | 0x01 |
FechadoByPeer | 0x02 |
Tempo esgotado | 0x03 |
Detalhes da classe XAsyncSocket :
Método | Argumentos |
---|
GetAsyncSocketsPool | Nenhum |
GetSocketObj | Nenhum |
Fechar | Nenhum |
Propriedade | Detalhes |
---|
ID do soquete | Obtenha o ID exclusivo do soquete aberto |
Fechado | Obtenha ou defina um evento do tipo f(closedReason) |
Estado | Obtenha ou defina um objeto personalizado |
Detalhes da classe XAsyncTCPServer :
Método | Argumentos |
---|
Criar (estático) | asyncSocketsPool , srvAddr (tupla de ip e porta), srvBacklog=256 (int), bufSlots=None |
Propriedade | Detalhes |
---|
SrvAddr | Tupla de ip e porta |
OnClientAccepted | Obtenha ou defina um evento do tipo f(xAsyncTCPServer, xAsyncTCPClient) |
Detalhes da classe XAsyncTCPClient :
Método | Argumentos |
---|
Criar (estático) | asyncSocketsPool , srvAddr (tupla de ip e porta), connectTimeout=5 (int), recvBufLen=4096 (int), sendBufLen=4096 (int), connectAsync=True (bool) |
AsyncRecvLine | lineEncoding='UTF-8' , onLineRecv=None (função), onLineRecvArg=None (objeto) , timeoutSec=None (int) |
AsyncRecvData | size=None (int), onDataRecv=None (função), onDataRecvArg=None (objeto), timeoutSec=None (int) |
AsyncSendData | data (bytes ou protocolo de buffer), onDataSent=None (função), onDataSentArg=None (objeto) |
AsyncSendSendingBuffer | size=None (int), onDataSent=None (função), onDataSentArg=None (objeto) |
IniciarSSL | keyfile=None , certfile=None , server_side=False , cert_reqs=ssl.CERT_NONE , ca_certs=None |
IniciarSSLContexto | sslContext , serverSide=False |
-
onLineRecv
é um evento de retorno de chamada do tipo f(xAsyncTCPClient, line, arg) -
onDataRecv
é um evento de retorno de chamada do tipo f(xAsyncTCPClient, data, arg) -
onDataSent
é um evento de retorno de chamada do tipo f(xAsyncTCPClient, arg) -
StartSSL
e StartSSLContext
não funcionam no MicroPython (no modo de soquetes assíncronos sem bloqueio) - É amplamente recomendado usar
StartSSLContext
em vez de StartSSL
(versão antiga)
Propriedade | Detalhes |
---|
SrvAddr | Tupla de ip e porta |
CliAddr | Tupla de ip e porta |
ÉSSL | Retorna True se SSL for usado |
EnviandoBuffer | Obtenha o buffer existente (memoryview) usado para enviar dados |
OnFailsToConnect | Obtenha ou defina um evento do tipo f(xAsyncTCPClient) |
Conectado | Obtenha ou defina um evento do tipo f(xAsyncTCPClient) |
Detalhes da classe XAsyncUDPDatagram :
Método | Argumentos |
---|
Criar (estático) | asyncSocketsPool , localAddr=None (tupla de ip e porta), recvBufLen=4096 (int), broadcast=False (bool) |
AsyncSendDatagram | datagram (bytes ou protocolo de buffer), remoteAddr (tupla de ip e porta), onDataSent=None (função), onDataSentArg=None (objeto) |
- onDataSent é um evento de retorno de chamada do tipo f(xAsyncUDPDatagram, arg)
Propriedade | Detalhes |
---|
Endereço Local | Tupla de ip e porta |
EmRecv | Obtenha ou defina um evento do tipo f(xAsyncUDPDatagram, remoteAddr, datagram) |
OnFailsToSend | Obtenha ou defina um evento do tipo f(xAsyncUDPDatagram, datagram, remoteAddr) |
Detalhes da classe XBufferSlot :
Método | Argumentos |
---|
Construtor | size (int), keepAlloc=True (bool) |
Propriedade | Detalhes |
---|
Disponível | Obtenha ou defina a disponibilidade do slot |
Tamanho | Obtenha o tamanho do buffer do slot |
Tampão | Obtenha o buffer do slot |
Detalhes da classe XBufferSlots :
Método | Argumentos |
---|
Construtor | slotsCount (int), slotsSize (int), keepAlloc=True (bool) |
ObterSlotDisponível | Nenhum |
Propriedade | Detalhes |
---|
Contagem de slots | Obtenha o número de slots |
Tamanho dos Slots | Obtenha o tamanho do buffer de cada slot |
Caça-níqueis | Obtenha a lista de slots |
Detalhes da classe XFiFo :
Método | Argumentos |
---|
Construtor | Nenhum |
Colocar | obj (objeto) |
Pegar | Nenhum |
Claro | Nenhum |
Propriedade | Detalhes |
---|
Vazio | Retorna True se o FiFo estiver vazio |
Por JC`zic para HC² ;')
Mantenha as coisas simples, estúpido ?