는 RPC 방법에 의존 할 수 있지만,이 받아 들일 수없는 대기 시간을 줄 수도 지적 한 바와 같이.
IntelliFactory에서 우리는 이제 서버와 클라이언트 간의 비동기 양방향 및 지연 시간이 짧은 통신이 필요한 프로젝트 작업을하고 있습니다. 우리는 WebSocket 프로토콜을 사용하여 끝내게되었습니다. 유사한 요구 사항을 가진 사람들에게 코드를 재사용 가능한 라이브러리에 문서화하고 출시 할 계획입니다.
우리의 목적을 위해 WebSocket 프로토콜의 가장 큰 장점은 연결의 서버 측에서 상태를 유지할 수 있다는 것입니다. 우리 서버는 Windows Azure에서 실행되는 작업자 역할입니다. WebSocket 연결이 설정되면 서버가 Azure로드 밸런서에 의해 임의로 선택되고 연결이 열려있는 동안 클라이언트가 동일한 서버와 통신합니다. 따라서 서버에서 연결 상태를 초기화하는 데 많은 비용을 필요로하지 않습니다.
WebSocket 프로토콜의 단점은 구형 브라우저가 지원하지 않는다는 것입니다. 이식성이 낮은 대기 시간이 짧은 대안은 SignalR로, 일부 형태의 HTTP 폴링을 사용하여 구형 브라우저의 기능을 에뮬레이션합니다. 불행히도 우리는 지금까지 Azure에 대한 우리의 요구 사항에 맞게 SignalR을 조정하지 못했습니다. 이론적으로는 가능해야하지만 AFAIK SignalR은 주로 stateless 디자인을 따르므로 라우터를 코딩하여 메시지를 리디렉션하고 Azure로드 밸런서의 효과를 "실행 취소"해야합니다.
http://www.websharper.com/samples/Chat을 보았습니까? –