it-swarm-ko.tech

ASP.NET에 대한 혜성 구현?

브라우저 내에서 Gmail과 같은 메시징을 구현하는 방법을 찾고 있으며 Comet 개념에 도달했습니다. 그러나 IIS (우리의 응용 프로그램은 ASP.NET 2.0으로 작성되었습니다) 내 에서이 작업을 수행 할 수있는 좋은 .NET 구현을 찾을 수 없었습니다.

내가 찾은 (또는 그 문제에 대해 생각할 수있는) 솔루션은 사용자 당 실행중인 스레드를 남겨 두어야하므로 메시지를 받으면 응답을 반환 할 수 있습니다. 물론 이것은 전혀 확장되지 않습니다.

그래서 제 질문은-다른 방식으로 작동하는 Comet에 대한 ASP.NET 구현에 대해 알고 있습니까? IIS에서도 가능합니까?

102
Doron Yaacoby

혜성은 지속적인 혜성으로 인해 IIS로 확장하기가 어렵지만 지금은 혜성 시나리오를보고있는 팀이 있습니다. Aaron Lerch 's blog ASP.NET에서 초기 Comet 작업을 수행했습니다.

44
Scott Hanselman

WebSync 는 IIS/.NET 파이프 라인에 직접 통합되는 표준 호환 확장 가능 Comet 서버입니다. 요청시 호스팅 서비스로도 제공됩니다.

이 서버는 공식적으로 서버 노드 당 최대 20,000 개의 동시 클라이언트 연결을 지원하지만 개별 테스트에서 최대 50,000 개가 넘는 것으로 나타났습니다. 메시지 처리량은 단일 노드에서 초당 최대 300,000 개의 메시지를 전달하여 1,000-5,000 개의 동시 클라이언트 표시에 가장 적합합니다.

여기에는 JavaScript, .NET/Mono, iOS, Mac OS X, Java, Silverlight, Windows Phone, Windows Runtime 및 .NET Compact에 대한 클라이언트 측 지원이 포함되며 .NET/Mono 및 PHP에 대한 서버 측 지원이 포함됩니다.

클러스터링은 기본적으로 SQL Server 또는 Azure Caching을 사용하여 지원되지만 사용자 지정 공급자는 거의 모든 것 (Redis, NCache)을 위해 작성할 수 있습니다.

면책 조항 : 이 제품을 개발하는 회사에서 근무합니다.

33
Anton

최근에 Clay Clayhart의 훌륭한 기사 를 기반으로 MVC 3 비동기 컨트롤러를 사용하여 Long Polling Chat Server의 간단한 예

BitBucket 프로젝트의 소스를 기반으로 설정 한 AppHarbor 배포의 예 _를 사용할 수 있습니다.

또한 내 프로젝트를 설명하는 블로그 게시물 에서 더 많은 정보를 얻을 수 있습니다.

15
Jacob

실제로 ASP.NET을 사용하여 아약스 지원 웹 사이트를 만드는 많은 선택이 있지만 솔직히 말하면 PokeIn 가장 쉬운 방법은 혜성 아약스 지원 웹 응용 프로그램. 회사의 프로젝트 중 하나를 저장했습니다.

4
BigbangO

Kaazing Enterprise Gateway 를 보면 혜성 방식을 완전히 대체하고 브라우저와 애플리케이션 서버 간의 전이중 연결을 가능하게하는 webSocket [HTML5] 게이트웨이의 프로덕션 릴리스를 만들었습니다.

Light Streamer Demos

3
Vikram

WS-I 그룹은 Glass Fish가있는 "Reliable Secure Profile" , .NET implementation _ inter-operate 이라는 것을 게시했습니다.

운이 좋으면 Javascript 구현도 있습니다.

HTTP Duplex. 를 사용하는 Silverlight 구현도 있습니다. javascript를 Silverlight에 연결 개체를 사용하여 푸시 발생시 콜백을 얻을 수 있습니다.

상업용 유료 버전 도 있습니다.

1
goodguys_activate

예전에 맞춤형 웹 스트리밍 서버를 활용 한 채팅 사이트를 사용했습니다. 실제로 호기심이 생겼을 때 그 소프트웨어를 한 시점에 재현했으며, 할 수있을 정도로 쉽다고 생각합니다. 요청이 스레드 풀 스레드 (비동기 처리기가 사용되는 경우 IO 스레드)를 무기한으로 묶기 때문에 IIS, 특히 ASP.NET에서 유사한 유형의 "무한 요청"을 구현하려고 시도하지 않습니다. 이는 스레드 풀 구성이 허용하는 한 서버 당 많은 양만 처리 할 수 ​​있음을 의미합니다.

그러한 기능에 대한 합법적 인 요구가 있다면 솔직히 맞춤형 http 서버를 작성합니다.

나는 그것이 당신의 질문에 실제로 답하지는 않는다는 것을 알고 있지만, 입력이 관련이 있다고 생각했습니다.

1
Chris

웹 서버를 수평으로 확장 할 준비가되어 있지 않다면 (웹 서버를 더 많이 추가하여) Comet 접근법은 실제로 확장 성이 없다고 생각합니다. 작동 방식은 사용자 세션마다 TCP 연결을 열어 두는 것입니다.) 따라서 서버는 때때로 해당 연결에 항목을 밀어 넣어 변경 또는 활동을 사용자에게 즉시 알릴 수 있습니다.

0
cruizer