Отправка сервера в реальном времени с помощью Socket IO (или Strophe.js ), XMPP и Django

У меня есть несколько собственных мобильных приложений для Android и iOS, которые я написал, которые напрямую подключаются к серверу XMPP, который я размещаю. Они передают и извлекают данные в реальном времени через XMPP. Я также использую некоторые из расширений XMPP XEP . Для других операций у меня есть приложение django, работающее на том же сервере, который все мобильные приложения используют через интерфейс HTTP REST. Я использую Celery и Redis для стороны django, чтобы выполнять некоторые операции асинхронно (, например, делать тяжелые пакетные записи в мою базу данных ).

Все это прекрасно работает. Ура.

Но теперь я хочу написать веб-сайт -для завершения всего этого, поэтому я начал исследовать свои варианты и, -есть так много способов снять шкуру с кота, что я хотел проверить с сообществом SO первый.

Идея иметь js-библиотеку, которая дает мне унифицированный API для связи через сокеты (, т. е. попробовать разные реализации веб-сокетов или вернуться к флэш-памяти ), мне нравится, поэтому я упоминаю Socket IO. Идея запуска сервера nodejs, ну, не так уж и много (еще одна вещь, которую нужно изучить ), но если мне придется, я обязательно это сделаю. Я знаю, что некоторые люди используют gevent в качестве замены node server . Другие решают написать небольшие узлы, которые они подключают к остальной части своего стека . Я бы, наверное, сделал это.

Другим вариантом является использование библиотеки js XMPP, такой как Strophe , которая, я не думаю, имеет резервную копию флэш-памяти. Кроме того, мне нужно будет изучить, что это означает для моего сервера.

Я прочитал несколько ответов Stackoverflow о том, как сделать комету и джанго -, поэтому кажется, что есть несколько вариантов.

Вопрос в том,:

если я хочу получить преимущество от поведения Socket IO (с запасными вариантами ), и я хочу передать данные в реальном времени веб-клиенту (, который подается на сервер через XMPP )и использовать Django, что мне лучше всего?

Обновление:Я использую XMPP-сервер ejabberd , который также поддерживает BOSH . Я понимаю, что я мог бы использовать Strophe.js , и, таким образом, мое общение проходило бы через HTTP-соединение с длительным опросом вместо веб-сокетов. Насколько я могу судить, существует библиотека с открытым исходным кодом XMPP over Websockets , но, насколько мне известно, сообщество не так активно, как сообщество SocketIO.

Обновление 2:Мне нужно поддерживать только современные браузеры. Я предполагаю, что это означает, что резервный вариант Flash не будет таким важным, что склоняет меня к strophe.js.

11
задан Community 23 May 2017 в 12:07
поделиться