2012-03-07 3 views
7

node.js 채팅 서버 V.S.를 사용하여 실행되는 채팅 클라이언트 간의 비교에 관한 적절한 벤치 마크를 찾을 수 없습니다. xmpp와 함께 작동하는 클라이언트.websocket + node.js가있는 채팅 서버와 xmpp가있는 기본 클라이언트 대

나는 node.js가 비동기이며 내가 아는 한 xmpp을 알고 있습니다. 그러나 필자의 주요 관심사는 동일한 양의 동시 사용자에 의한 성능입니다.

Android 앱을 작성하려면이 정보가 필요합니다. 두 시스템 모두를 사용하여 자신의 의견과 장단점을 알고 싶습니다.

미리 감사드립니다.

+0

예상되는 동시 사용자 수는 얼마입니까? (대체로?) – TheHippo

+0

with node.js 내가 4000이라고 생각하고 xmpp라면 같은 하드웨어에서 대부분 2000을 생각하고있다. –

+0

하드웨어에 따라 다르지만 XMPP가 연결 수의 절반 만 지원한다고 생각한다면 분명히 그렇다. 당신이 틀렸다고 생각하는 것과 같은 하드웨어. 하드 통계는 응용 프로그램 및 사용 프로필에 따라 다르지만 4K를 쉽게 처리 할 수있는 단일 서버 XMPP 설정을 알고 있습니다. jabber.org조차 최대 서버 사용량이 20K 인 단일 서버에서 실행됩니다.많은 XMPP 기능을 사용하지 않을 것이라는 점을 감안할 때 응용 프로그램은 jabber.org와 같은 "일반"XMPP 서버보다 훨씬 더 발전 할 것입니다. – MattJ

답변

1

내가 묻는 바에는 서버 측 자바 스크립트 구현 (Node.js)과 메시징 프로토콜 (XMPP)을 비교하려고합니다.

미리 작성된 많은 XMPP 서버와 많은 클라이언트 라이브러리가 이미 작성되었습니다. XMPP 사용을 고려하고 다른 솔루션과 비교하여 문제를 비교하는 경우 이러한 사항을 평가해야합니다.

노드와 웹 소켓의 상단에 뭔가를 구현하는 경우 XMPP가 이미 제공하는 인증, 암호화, 응용 프로그램 프로토콜 등과 같은 모든 작업과 모든 서버 측 라우팅 논리를 처리해야합니다 . 많은 XMPP 서버는 단일 도메인 뒤에서 여러 서버를 투명하게 실행하여 클러스터링을 지원합니다.

귀하의 특정 응용 프로그램에 대해 가장 잘 알고있는 궁극적으로 선택은 귀하의 것입니다. 단일 노드 성능뿐만 아니라 개발 시간 및 확장 성을 다른 요소와 비교해야합니다.

+0

물론 MattJ, 당신은 완전히 확장성에 관한 것입니다. 그러나 두 플랫폼간에 어떤 성능 차이가 있는지 알아야합니다. 인증, 라우팅 .. 내 최우선 순위 목록에 아직 없습니다. –

+0

요점은 그들이해야한다는 것입니다. 응용 프로그램 요구 사항을 먼저 결정해야하며 구현에 대한 성능 질문은 나중에 따라야합니다. 또한 Node.js + websocket에 XMPP가 제공하는 몇 가지 기능이 누락 될 수 있다는 점이 얼마나 많은 문제인지 알 수 있습니다. 그러나 XMPP의 기능이 필요하다면 Google과 Facebook은 성공적으로 확장 할 수 있다는 증거입니다. – MattJ

+0

xmpp에서 제공하는 기능을 살펴 보았습니다. 말했듯이, 성능 및 동시 컴퓨터 당 총 사용자 수는 나를 위해 더 중요합니다. –

1

나는 클라이언트 용 Node.js와 몇 가지 채팅 서비스를 만들었으며 Node.js로 실행되는 기본 채팅 서비스를 쉽게받을 수 있다고 말할 수 있지만 휠 재발 명에 많은 시간을 할애 할 가능성이 높습니다. 이 경로를 선택하는 경우 eJabberd와 같은 XMPP 서버에는 재구성 할 필요가없는 기본 제공 기능이 많이 있습니다.

내가 작업 한 프로젝트의 경우, eJabberd는 기본 기능 만 필요했기 때문에 잔인 함을 느꼈지만, 사용자는 채팅, 채팅, 채팅, 결정을 내리는 사용 사례를 신중하게 고려해야합니다.

저는 XMPP 용 Node.js 웹 클라이언트를 만들어 Campfire와 유사하지만 eJabberd를 백엔드로 사용하려고합니다. 나는 실제로이 일을하기로 약속하지 않았지만, 두 세계의 장점을 최대한 살릴 수있는 좋은 방법이라고 생각합니다.

1

또한 클라이언트의 종류에 따라 다릅니다. 브라우저 기반 클라이언트는 긴 폴링 (혜성과 유사)을 사용하는 HTTP를 통한 XMPP 인 BOSH를 사용합니다. 이렇게하면 각 클라이언트의 30 초마다 하나 이상의 요청이 만들어지며 (설정에 따라 다름), 클라이언트가 수천 명을 확보하면 추가되기 시작합니다. 나는 그것에 대한 비교를 보는 것에 흥미가있을 것이다 - 웹 소켓이 이점을 가져야하는 것처럼 보인다.

+0

물론 이제는 웹 소켓을 통해 XMPP를 사용할 수 있으며 두 가지 장점을 모두 활용할 수 있습니다. – Robin

관련 문제