2010-08-01 4 views
2

웹 소켓을 활용하는 복잡한 HTML 5 응용 프로그램을 구축 중입니다. 나는 화면에서 실시간으로 업데이트되는 많은 다른 유형의 데이터가있는 지점에 도달하고 있습니다.한 페이지의 웹 소켓 수

더 복잡한 웹 소켓을 사용하는 것이 더 좋은지 알고 싶거나 페이지 당 간단한 웹 소켓을 많이 여는 것이 좋습니다.

Grails 애플리케이션에 http://github.com/TooTallNate/Java-WebSocket 웹 소켓 서버를 추가했습니다.

지금 당장 나는 각 작업에 간단한 웹 소켓을 많이 사용하고 있습니다. 더 많은 소켓을 사용하는 것은 서버 측에서 더 많은 메모리를 사용하지만 더 많은 소켓은 더 많은 동시 처리를 의미합니다.

아무도 내가 균형을 잡을 수있는 방법에 대한 조언이 없습니까?

미리 감사드립니다. Keith Blanchard

답변

0

특정 브라우저에서 실제 성능을 측정하지 않으면 웹 소켓에 대한 합리적인 표현을 내리기가 어렵다고 생각합니다.

내 성향은 클라이언트 당 하나의 웹 소켓을 갖는 것입니다. IO를 수행 할 때 용량 서버쪽에 몇 가지 매우 엄격한 제한이 있습니다 ... 연결이 많은 경우 채널을 포화시키기가 비교적 쉽습니다 (시스템을 너무 심각하게 손상시킬 수있는 사항).

다시 말하면, 이에 대한 지적인 진술을 실제로 측정해야합니다.

클라이언트 당 웹 소켓도 응용 프로그램을 훨씬 더 관리하기 쉽게 만들 것입니다 ... 실제 사용 사례에 따라 다르지만 "더 많은 동시성"이 반드시 더 좋은 것은 아니며 상태를 매우 복잡하게 관리 할 수 ​​있습니다.

0

나는 개인적으로이 일에 대한 몇 가지 벤치 마크를했고, 그 결과는 다음과 같습니다 데이터가 각 소켓에서 들어오는 때 한 페이지에

10 WebSocket을 페이지 조금 응답하지 않는 원인이됩니다.

한 페이지에 50 개의 웹 소켓이 있으면 웹에서 견딜 수없는 상태가됩니다.

어딘가에 약 10 개 또는 10 개 미만이 상한선이됩니다.

+1

각 데이터 스팀이 개별적으로 표시 될 때마다 페이지 당 약 10 개를 사용하고 있었는데 표시되는 데이터의 일부가 변경 될 수 있으므로 (@ ~ 300ms 이하) 데이터가 변경되고 있습니다 (서버 푸시). 10 분마다 변경됩니다. 그래서 저는 제 경우에 유사한 데이터를 그룹화 할 가치가 있다고 말한 것을 검증하기 위해 몇 가지 벤치 마크를 직접 실행할 수 있습니다. 나는 차라리 그렇게하지 않을 것이다. – Sphvn