Eu tenho o seguinte hardware:
3 x fótons de partículas . Cada um serve como um servidor HTTP
1 x Raspberry Pi 3, que servirá como um cliente HTTP
Ao solicitar um HTTP GET para qualquer um dos fótons, a API retorna:
{
node: 1,
uptime: 1234556,
location: 'back',
sensor: {
Eu: {// Euler Angles from IMU
h: 0, p: 0, r: 0
},
La: {// linear Acceleration values from IMU
x: 0, y: 0, z: 0
}
}
}
Desejo criar um esquema de pesquisa em que o cliente Raspberry Pi executa um HTTP GET a cada 0,1 segundo em cada um dos três servidores.
Não tenho certeza se existe algo como HTTP Polling e se as Bibliotecas assíncronas como Twisted by Python devem ser as únicas a serem usadas.
Gostaria de obter alguns conselhos sobre como um modelo de Servidor Múltiplo - Servidor Único funcionaria em HTTP errado?
Referência
Cada fóton de partículas tem a resposta JSON mencionada acima para uma solicitação HTTP GET.
O Raspberry Pi serviria como um cliente HTTP, tentando obter solicitações de todos os fótons de partículas.
fonte
Respostas:
Encontrei uma boa solução básica para o que @Chris Stratton se refere a uma conexão tcp mantida viva:
Você deve fazer um loop eterno que aguarde 0,1s e, em seguida, execute uma dessas etapas entre conectar e fechar, para que a conexão seja chamada apenas uma vez no início e feche somente quando houver extrema necessidade de desligar tudo.
Com threads, uma vez que os trabalhos anteriores:
Fontes:
http://www.wellho.net/resources/ex.php4?item=y303/browser.py
/programming/2846653/how-to-use-threading-in-python
/programming/510348/how-can-i-make-a-time-delay-in-python
fonte
Talvez os seguintes links possam ajudá-lo:
Exemplo básico de cliente: https://docs.python.org/2/library/asyncore.html#asyncore-example-basic-http-client
Exemplo básico de servidor de eco: https://docs.python.org/2/library/asyncore.html#asyncore-example-basic-echo-server
Além disso, você já pensou em usar o protocolo UDP? pode ser melhor ...
E eu aconselho sobre o HTTP / 1.0, tanto quanto sei, não é obrigatório em sua implementação, para manter as conexões ativas, definidas no HTTP / 1.1; de qualquer maneira, depende da implementação, pode ter ou não pode.
fonte