Впервые понадобилось написать клиент-серверное приложение. Сервер хранит в БД некие данные, обрабатывает их по запросу от клиента и ему их отдаёт, или наоборот принимает от клиента обрабатывает и записывает в БД. Плюс внутренние обработке по таймеру и событиям. Клиентов не много <30, данных тоже, но соединение и поток данных постоянны.
Работать напрямик с сокетами желания нет (не сложилось с ними). Из сетевых библиотек нашёл только Tornado и Twisted, но как понимаю они только для серверов, да и большие они слишком для моего применения. Может посоветуете как реализовать обмен между сервером и клиентами?
Андрей Мывреник, спасибо, посмотрим. Почему-то этой библиотеки не видел когда искал информацию по.
Только непонятно, обязательно asincio нужно с websocket-ами использовать? И если да, то реально-ли с PyQT5 соединить?
Константин, Конечно нужен asyncio, тут вообще без вариантов. Вопрос про PyQT5 не понимаю, не вижу как GUI фреймворк может препятствовать использованию библиотек.
Андрей Мывреник, и у того и у другого свои обработчики очереди сообщений:
asyncio.get_event_loop().run_forever()
в Qt
app = QtWidgets.QApplication(sys.argv)
sys.exit(app.exec_())
Все три библиотеки совсем нето:
netmiko для ssh на сетевых железяках,
telnetlib - клиент для Telnet-а,
ipaddr - для работы с _адресами_, не для передачи данных.
Уже начал делать именно так, но что-то мне такой подход не очень нравится.
Запросов, хоть они и маленькие, много. Для каждого устанавливается соединение, передаются запрос-ответ с заголовками, потом это закрывается. Получается не эффективно, слишком много накладных расходов. Вот если можно открыть соединение, и его удерживать открытым, и через него гонять запросы с минимум заголовков... Но это тогда, как я понимаю, уже почти WebSocket.
x67, впервые вижу такую диаграмму, и она хороша.. =)
Вот найти-бы решение для центра, но это пока увы из области фантастики.
А пока зелёный сегмент самое то.