Совместимость с протоколом асинхронного обмена сообщениями вне Python (и витая)
Протокол асинхронного обмена сообщениями является простым протоколом в Python-витой. У меня есть довольно полное приложение (python, twisted, kivy), использующее его. Клиент-серверная архитектура реализует отношения вида контроллер-вид, при этом почти вся серверная сторона бизнес-логики и код интерфейса пользовательского интерфейса просто отражают изменение состояния моделей (отправленных сервером) и отправляют соответствующие сообщения AMP.
Вот список реализаций протокола AMP на других языках, но некоторые видны незавершенными, и большинство из них, похоже, на самом деле не используются для чего-то серьезного.
Сценарий, на который я смотрю, - это полностью приложение Python, которое в настоящее время работает на Windows, Linux и Android (возможно, на iOS, если я когда-нибудь смогу это сделать). И, возможно, в будущем, заменив бит View/UI на "родной" язык (например, Java/Swift на Android), сохранив бизнес-биты в python и скрученные.
Итак, у меня есть два основных вопроса:
Правильно ли сказать, что AMP действительно используется только в Python-Twisted и тех программах, которые его используют?
Существуют ли другие, более общие полезные сетевые протоколы, которые реализованы и довольно просты в использовании в витой, а также неспецифической (например, jabber действительно только для чата)? Предпочтительно, для которых не требуется такой сервер, как WAMP/autobahn (если я правильно понимаю), поэтому он может быть автономным на любом устройстве, которое может запускать python.
1 ответ
Это не совсем точно. Twisted просто использует его чаще всего. Другие языки используют AMP, просто AMP не стал очень популярным, учитывая популярность других более надежных опций, таких как AMQP (ZeroMQ, RabbitMQ, WebsphereMQ и т. Д.).
AMP настолько прост, насколько это возможно. Кроме того, вряд ли вы найдете решение без сервера.
AMP не привязан к Twisted или Python. Существуют другие реализации на других языках, но, как вы сказали, некоторые из них не используются "серьезно" и часто остаются необслуживаемыми. Не позволяйте этому пугать вас, потому что протокол очень прост, и после того, как он будет реализован, зачастую не так много дел. Вы будете рады узнать, что действительный протокол не сильно изменился и его не очень сложно реализовать на любом языке, если вы следуете дизайну. Если вы хотите что-то более общее, кроссплатформенное и гарантированно совместимое, рассмотрите HTTP-запросы.