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