programing

.NET 4.5 웹 소켓 대 신호 R

bestprogram 2023. 6. 26. 21:33

.NET 4.5 웹 소켓 대 신호 R

저는 asp.net MVC 채팅 애플리케이션에 대한 signalRhtml5 웹소켓을 보았지만 Microsoft가 .NET 4.5에서 WebSocket 개체로 확장했을 수 있는 HTML5 웹소켓을 기반으로 하기 때문에 제 질문에 100% 대답하지 않습니다.

WebSocket 기능이 실제로 SignalR과 동일하게 작동하며 WebSocket을 사용할 수 없을 때 긴 폴링으로 되돌아갑니까?마이크로소프트가 이 기술에 대한 접근 방식에서 SignalR과 동일한 기술을 구현할 것이라고 확신합니까?

편집:

이것에 대해 궁금해하는 다른 사람들을 위해, 저는 이 의견이 시나리오와 제가 SignalR을 사용하는 이유를 이해하는 데 가장 도움이 된다는 것을 알았습니다.

글쎄, 그들은 사실 그렇지 않습니다.지금까지 IIS와 ASP.NET에는 지원되는 웹소켓이 내장되어 있지 않았기 때문에 SignalR 프로젝트에서 직접 빌드해야 했습니다.이제 Microsoft가 배관을 제공하기 때문에 SignalR은 Microsoft의 구현을 사용하는 것으로 쉽게 전환할 수 있습니다.SignalR은 구현 세부 정보에 대한 추상화이며 WebSockets 클래스는 구현 세부 정보입니다.

저는 SignalR이 가야 할 길이라고 생각하며, 어쨌든 .NET 자체의 일부가 될 것입니다(웹 소켓 지원을 확장/합병/교체할 가능성이 높습니다).지원될 때는 웹 소켓을 사용하고, 지원되지 않을 때는 일관된 클라이언트 폴링 해킹을 사용합니다. 그래서 이것이 방법입니다.

업데이트:

이 답변은 여전히 투표 중이므로 SignalR이 이제 공식적으로 ASP.NET의 일부임을 언급할 가치가 있습니다.

http://asp.net/signalr 을 확인하십시오.

업데이트: .NET Core

@yazanpro가 코멘트에서 언급했듯이 SignalR도 .NET Core에 추가되고 있습니다.

.NET Core 2.1에서 사용할 수 있으며 공식 설명서도 있습니다.

  1. WebSocket 기능이 실제로 SignalR과 동일하게 작동하며 WebSocket을 사용할 수 없을 때 긴 폴링으로 되돌아갑니까?

    WebSockets는 다른 통신 기술과 독립적인 새로운 프로토콜입니다.RFC에서

    이 기술의 목표는 여러 HTTP 연결(예: XMLHttpRequestor 폴링 사용)을 열지 않는 서버와의 양방향 통신이 필요한 브라우저 기반 응용 프로그램을 위한 메커니즘을 제공하는 것입니다.

  2. 마이크로소프트가 이 기술에 대한 접근 방식에서 SignalR과 동일한 기술을 구현할 것이라고 확신합니까?

    그들이 사양을 준수하기를 원한다면 그렇지 않습니다.마이크로소프트가 통신 세부 사항을 추상화하고 우아한 폴백을 제공하는 SignalR과 유사한 더 높은 수준의 API를 개발하는 것을 막을 수 있는 것은 분명 없습니다.그러나 이 가상의 API는 대체하는 대신 WebSocket 클래스 위에 구축될 것입니다.

SignalR은 브라우저가 웹 소켓을 지원하는 경우 OWIN을 사용하고 브라우저가 웹 소켓을 지원하지 않는 경우 긴 폴링을 사용합니다.

언급URL : https://stackoverflow.com/questions/9524591/net-4-5-websockets-vs-signalr