나는 호스트하는 XMPP 서버에 직접 연결하는 Android 및 iOS 네이티브 모바일 응용 프로그램을 가지고 있습니다. 그들은 XMPP를 통해 실시간 데이터를 밀고 당깁니다. 나 또한 XMPP XEP extensions 중 일부를 사용합니다. 다른 작업의 경우, 모든 모바일 애플리케이션이 HTTP REST 인터페이스를 통해 소비하는 동일한 서버에서 장고 애플리케이션을 실행합니다. 장고 측에서 비동기 적으로 일부 작업을 수행하기 위해 Celery 및 Redis를 사용합니다 (예 : 대량 데이터베이스 일괄 처리).소켓 IO (또는 Strophe.js), XMPP 및 Django가 포함 된 실시간 서버 푸시
이 모든 것이 훌륭하게 멋지게 작동합니다. 예.
하지만 지금은이 모든 것에 웹 프런트 엔드를 쓰고 싶습니다. 그래서 옵션을 연구하기 시작했습니다. 우선 SO 커뮤니티에서 확인하고 싶은 고양이를 여러 가지 방법으로 조사하고 있습니다.
소켓 통신을위한 통합 API (즉, 웹 소켓의 다른 구현을 시도하거나 플래시로 폴백)를 제공하는 js 라이브러리를 갖는 아이디어가 나에게 호소합니다. 그렇기 때문에 소켓 IO에 대해 언급합니다. nodejs 서버를 실행해야한다는 생각은, 많이는 아니지만, 배울 점이 더 많습니다.하지만 꼭해야만한다면, 분명히 할 것입니다. 어떤 사람들은 gevent as a replacement of the node server을 사용합니다. 기타는 small nodejs which they connect to the rest of their stack로 작성하십시오. 나는 아마 이것을 할 것이다.
또 다른 옵션은 플래시 폴백이 없다고 생각하는 Strophe과 같은 js XMPP 라이브러리를 사용하는 것입니다. 또한, 내 서버에서 이것이 무엇을 의미하는지 연구해야 할 것입니다.
나는 혜성과 장고를하는 방법에 대한 Stackoverflow 답을 여러 권 읽었으므로 몇 가지 옵션이있는 것 같습니다.
질문 :
I합니다 (폴백 (fallback)와) 소켓 IO 동작의 장점을 갖고 싶어하고 내가 XMPP를 통해 서버에 공급되고있는 웹 클라이언트에 실시간 데이터 (푸시 할), 그리고 장고를 사용하여 최선의 선택은 무엇입니까?
업데이트 : 내가 사용 XMPP 서버는 BOSH을 지원 ejabberd이다. 나는 Strophe.js을 사용할 수 있다는 것을 알았고 따라서 나의 통신은 웹 소켓 대신에 긴 폴링 (polling) HTTP 연결 유형을 거쳐야했다. 내가 알 수있는 한, XMPP over Websockets open source library이 있지만 AFAIK 커뮤니티는 SocketIO만큼 활발하지 않습니다.
업데이트 2 : 지원해야하는 브라우저는 최신 브라우저입니다. 이것은 플래시 대체가 그다지 중요하지 않다는 것을 의미합니다. 이것은 나를 스트로피쪽으로 기울이고 있습니다 .js.
js보다 다른 언어로 socket.io 서버 구현이 있습니다. 노드는 참조 서버 일뿐입니다. Go.socket.io를 사용하여 socket.io 서버를 Go로 작성했습니다. 파이썬에는 스택에 토네이도를 사용하는 TornadIO2가 있습니다. – jdi