Делаю сокет-сервер, к которому должны быть подключены сотни клиентов с постоянным соединением. Клиент - устройство с датчиками. которое периодически посылает статусы. Т.е. объем информации небольшой. Вначале соединения, идет обмен приветствиями, чтобы убедиться что постучался не дядя Вася. Затем периодически отправляются статусы.
Про сокеты я обчитался почти достаточно. Штука довольно примитивная. Очень помогли в понимании
эта и
эта статьи. Но некоторые вопросы все же остались.
1. Возможно ли постоянное подключение?
В статье по второй ссылке сказано вот это:
But if you plan to reuse your socket for further transfers, you need to realize that there is no EOT on a socket. I repeat: if a socket send or recv returns after handling 0 bytes, the connection has been broken. If the connection has not been broken, you may wait on a recv forever, because the socket will not tell you that there’s nothing more to read (for now).
Я правильно понимаю что для того чтобы соединения было постоянным, нужно непрерывно обмениваться пакетами?
2. Сервер должен быть асинхронным. Что для этого лучше использовать без лишнего усложнения?
- потоки
- asyncio
-
socketserver
- twisted
- tornado