У меня есть несколько собственных мобильных приложений для Android и iOS, которые я написал, которые напрямую подключаются к серверу XMPP, который я размещаю. Они передают и извлекают данные в реальном времени через XMPP. Я также использую некоторые из расширений XMPP XEP. Для других операций у меня есть приложение django, работающее на том же сервере, который все мобильные приложения используют через интерфейс HTTP REST. Я использую Celery и Redis для стороны django, чтобы выполнять некоторые операции асинхронно (например, делать тяжелые пакетные записи в мою базу данных).
Все это работает отлично и денди. Ура.
Но теперь я хочу написать веб-интерфейс для всего этого, поэтому я начал исследовать свои варианты и, что ж, существует так много способов снять шкуру с кота, что я хотел сначала проверить с сообществом SO.
Идея иметь библиотеку js, которая дает мне унифицированный API для связи с сокетами (т. е. попробовать разные реализации веб-сокетов или вернуться к флэш-памяти), мне нравится, поэтому я упоминаю Socket IO. Идея запуска сервера nodejs, ну, не так уж и много (еще одна вещь, которую нужно изучить), но если мне придется, я обязательно это сделаю. Я знаю, что некоторые люди используют gevent в качестве замена узла сервера. Другие решают написать небольшие узлы, которые они подключают к остальным их стек. Я бы, наверное, сделал это.
Другой вариант — использовать библиотеку js XMPP, такую как Strophe, которая, как мне кажется, не имеет резервного флэш-памяти. Кроме того, мне нужно будет изучить, что это означает для моего сервера.
Я прочитал несколько ответов Stackoverflow о том, как сделать комету и джанго, поэтому кажется, что есть несколько вариантов.
Вопрос в том:
Если я хочу получить преимущество от поведения Socket IO (с резервными вариантами) и хочу передать данные в реальном времени веб-клиенту (который передается на сервер через XMPP), и использовать Django, что является моим лучшим вариантом? ?
Обновление: я использую XMPP-сервер ejabberd, который также поддерживает BOSH. Я понимаю, что мог бы использовать Strophe.js, и, таким образом, мое общение проходило бы через HTTP-соединение с длительным опросом. вместо веб-сокетов. Насколько я могу судить, есть некоторые открытые XMPP через веб-сокеты. исходная библиотека, но, насколько мне известно, сообщество не так активно, как сообщество SocketIO.
Обновление 2. Мне нужно поддерживать только современные браузеры. Я предполагаю, что это означает, что резервный вариант Flash не будет таким важным, что склоняет меня к strophe.js.