Ouça as conexões de entrada no AS3 (AIR) Client sem usar o soquete do servidor
Eu consegui criar um servidor c # que envia arquivos para clientes AS3 (AIR) usandosockets
. No lado AS3 eu estou usando oflash.net.Socket
biblioteca para receber os dados atravésTCP
.
É assim que funciona:
-> Eu ligo meu servidor, e ele ouve os clientes (mais eu posso criar uma lista de dispositivos conectados);
-> Eu ligo o meu cliente e ele recebe automaticamente os dados;
O evento de acionamento para receber os dados é feito no cliente, ou seja, eu simplesmente ligo o servidor e quando o cliente liga, ele pega os dados, acionando estes eventos:
socket.addEventListener(Event.CONNECT, onConnect); -> to connect to the server
socket.addEventListener(Event.SOCKET_DATA, onDataArrival); -> to receive the data
Agora quero fazer algo diferente. Eu não quero acioná-lo no cliente, eu quero que o servidor faça isso, ou seja, eu quero ligar o meu cliente e no servidor colocar em qual cliente irá obter os dados.
Então, por que estou tentando tornar o cliente um cliente / servidor? Bem, porque meu servidor é uma máquina e meus clientes são XXX dispositivos móveis que conectam o servidor, e esta é minha abordagem para realizar isso.
Então, dado o que acabei de dizer, eu consegui criar meu aplicativo cliente / servidor AS3 que funciona exatamente como eu quero, usando oflash.net.ServerSocket
biblioteca.
Primeiro eu coloquei o cliente escutando:
serverSocket.bind(portNumber, "10.1.1.212");
serverSocket.addEventListener(ServerSocketConnectEvent.CONNECT, onConnectServer);
serverSocket.listen();
E então eu recebo os dados usando oflash.net.Socket
Event.SOCKET_DATA
E isso é muito bonito. Funciona exatamente como eu quero.
No entanto, oflash.net.ServerSocket
não é compatível com dispositivos móveis, mas ...
Então, aqui está o meu problema: eu preciso enviar arquivos do servidor C # (que precisa escutar clientes para que eu possa criar uma lista de dispositivos conectados) para clientes AS3 (AIR), mas eu tenho que definir qual cliente está obtendo os dados no servidor, e os clientes precisam estar preparados para receber esses dados a qualquer momento, portanto, ouvindo, mas há muitos deles, é por isso que os considero como clientes.
E minha pergunta é: Existe uma maneira de fazer um cliente escutar conexões de entrada e disparar um evento quando isso acontece, sem usar o Soquete do Servidor no AS3?
Além disso, se você tiver uma abordagem diferente para realizar o meu objetivo sem usar a lógica cliente / servidor AS3 do servidor C #, sinta-se à vontade para chutar sua opinião.