Compartilhe
Ir em baixo
MEMBRO

MEMBRO
Mensagens : 56
Data de inscrição : 02/02/2017
Ver perfil do usuário

[05/02/2018] Nova versão do reactor.lua

em Seg Fev 05, 2018 11:35 am
Reputação da mensagem: 50% (2 votos)
Olá, faz um tempo que estou parado no fórum mas decidi melhorar o reactor.lua eu o refiz e reorganizei do 0 e agora está mais parecido com o do python.

Novidades 05/02/2018:

- Melhoria no servidor e conexões.
- Todas as linhas são recebidas.
- reactor.callLater adicionado.
- reactor.run adicionado.
- reactor.stop adicionado.
- connectionMade adicionado.
- Modificações na maneira como recebe a data.

Servidor base:

Servidor com connectionMade:
Código:
dofile('./Modules/reactor.lua') -- Reconfigure para a pasta do seu reactor.lua

Client = function()
 local self = {}
 
 self.connectionMade = function()
 print("Uma nova conexão foi feita por "..self.transport:getpeername())
 end
 
 self.dataReceived = function(data)
 print(data)
 end
 
 self.connectionLost = function()
 print('Connection lost')
 end
 
 return self
end

reactor.listenTCP(5555,Client)
reactor.run()
Servidor com makeConnection:
Código:
dofile('./Modules/reactor.lua') -- Reconfigure para a pasta do seu reactor.lua

Client = function()
 local self = {}
 
 self.makeConnection = function(transport)
 self.transport = transport
 print("Uma nova conexão foi feita por "..self.transport:getpeername())
 end
 
 self.dataReceived = function(data)
 print(data)
 end
 
 self.connectionLost = function()
 print('Connection lost')
 end
 
 return self
end

reactor.listenTCP(5555,Client)
reactor.run()

reactor.callLater base:

Usado para imprimir mensagem depois de 2 segundos e em 3 segundos desligar o reactor

Código:
dofile('./Modules/reactor.lua') -- Reconfigure para a pasta do seu reactor.lua

reactor.callLater(2, print, 'test')
reactor.callLater(3, reactor.stop)
reactor.run()

para usar ele em metatable use:

reactor.callLater(tempo ,metatable/function, argumentos, meta)

tempo = Quantidade de tempo a esperar até que seja ativo a função ou metatable(Int)

metatable/function = A tabela(um exemplo: self.transport) ou uma função que vai ser chamada após o tempo determinado(function/metatable)

argumentos = São os argumentos que serão enviados a function/meta(String, table, nil)

meta = A meta da table(um exemplo do self.transport é o send)(String)


Downloads:

[05/02/2018] reactor.lua: https://pastebin.com/tYVAWhKt
[04/12/2017] reactor.lua: http://www.aulamice.io/t2483

Sistema desenvolvido por Dudugz.
avatar
MEMBRO

MEMBRO
Mensagens : 261
Data de inscrição : 01/04/2015
Idade : 16
Ver perfil do usuáriohttp://www.miceup.top

Re: [05/02/2018] Nova versão do reactor.lua

em Seg Fev 05, 2018 7:09 pm
Muito bom...
Voltar ao Topo
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum