#python #rest #notifications #backend #pyfcm
#python #rest #уведомления #серверная часть #pyfcm
Вопрос:
Пытаюсь создать надежную связь между сервером и клиентом в python. потери и задержки приема должны быть как можно ниже. Вот моя мысль,
- клиент замечает сервер (DNS) при подключении к Интернету
- сервер сохраняет IP-адрес клиента
- широковещательная передача данных 1 на сохраненные IP-адреса
- клиент подтверждает сообщение msg idx на сервер
- повторная отправка сервера до подтверждения клиентом (с таймаутом)
- сервер удаляет IP, если 3 широковещательные передачи без подтверждения
где данные (json / df / db):
- data1: идентификатор сообщения и широковещательный сообщение
- data2: ip, идентификатор последнего сообщения и временная метка подключения
Теперь, просто хочу сделать это простым, но хочу, чтобы его можно было расширять. Существует ли какая-либо общая практика для этого? в будущем может потребоваться серверная часть (REST). Ранее я думал, что уведомление FCM может удовлетворить мои потребности, но, похоже, не так много ресурсов, связанных с python, для запуска. Пожалуйста, сообщите, достаточно ли хороша приведенная выше идея.
Комментарии:
1. Использовать TCP для вашего общения?
2. Вы могли бы использовать Socket.IO . Работает очень быстро и очень надежно.
3. хорошо, TCP может упростить шаги в моем потоке. В общем, без acc mgmt я больше беспокоюсь о потере пакетов / рассинхронизации данных на клиенте. поэтому я не уверен, что должен делать это сам на python или через api / серверную часть с помощью sth, например, push-уведомления.
4. TCP является «надежным», что означает, что не должно быть потери ваших данных (если соединение не прерывается в середине передачи). Однако это потоковый протокол без отдельных пакетов. Если вам нужна надежность, подобная TCP, с дейтаграммами, используйте
SOCK_SEQPACKET
if supporten.