SignalR은 브라우저 기반 클라이언트와 ASP.NET 기반 서버 구성 요소가 양방향 다단계 대화를 수행할 수 있도록 하는 통합 클라이언트-서버 라이브러리입니다. 즉, 대화는 제한 없이 단일 상태 없는 요청/응답 데이터 교환을 허용하며; 명시적으로 종료될 때까지 계속됩니다. 대화는 영구 연결을 통해 이루어지므로, 클라이언트가 서버에 여러 메시지를 보내고 서버가 이에 따라 응답할 수 있으며, 특히 서버가 클라이언트에게 비동기 메시지를 보낼 수도 있습니다. 이 기술은 AJax와 유사하며 기존 기술을 기반으로 합니다. 그 자체가 복합체입니다. 일반적으로 SignalR은 클라이언트 측 통신을 위해 Javascrip{filtering}t의 긴 폴링을 사용합니다. WebSockets가 등장한 이후, SignalR은 WebSocket 통신도 지원했습니다. 물론 SignalR은 서버 측 작업 병렬 처리 기술도 사용하여 서버 확장성을 향상시킵니다. 이 프로젝트는 전체 .NET Framework 플랫폼을 대상으로 하며, 애플리케이션 호스팅에 국한되지 않고, Mono 2.10+를 지원하는 크로스 플랫폼 오픈 소스 프로젝트이기도 합니다. 이는 웹 API의 대안적 구현 옵션이지만, 서버 측 온라인 처리 측면에서 MVC ASP.NET 의 웹 API보다 훨씬 우수하며, 더 중요한 것은 웹 폼에서도 사용할 수 있다는 점입니다. 위 사진은 데모 튜토리얼입니다:
웹소켓 서버는 signalr이고, 그 다음에는 owin을 사용해 콘솔에 호스팅합니다!!!
OWIN의 전체 명칭은 .NET용 Open Web Interface입니다.
이름만 파싱하면 다음과 같은 정보를 얻을 수 있습니다: OWIN은 .NET 플랫폼용 오픈 웹 인터페이스입니다.
그렇다면 웹 인터페이스 간의 인터페이스는 누구일까요? OWIN은 웹 애플리케이션과 웹 서버 간의 인터페이스이며, OWIN은 .NET 웹 애플리케이션과 웹 서버 간의 인터페이스입니다.
왜 그런 인터페이스가 필요한가요? 왜냐하면. NET 웹 애플리케이션은 웹 서버에서 실행되며, .NET 웹 애플리케이션은 웹 서버를 통해 사용자의 요청을 받아 응답 콘텐츠를 웹 서버를 통해 사용자에게 전송해야 합니다. 이러한 인터페이스가 없으면 .NET 웹 애플리케이션은 실행 중인 특정 웹 서버에 의존하게 되며, 예를 들어 애플리케이션은 IIS에 의존하게 ASP.NET 것입니다. 이 인터페이스를 통해 애플리케이션 ASP.NET 이 추상 인터페이스에만 의존하면 되며, 실행 중인 웹 서버에 신경 쓰지 않습니다.
따라서 OWIN의 역할은 추상적인 인터페이스 집합을 도입하여 분리하는 것입니다. NET 웹 애플리케이션과 웹 서버는 인터페이스의 중요성을 다시 한 번 보여줍니다. 소프트웨어 개발에서 모든 분리는 큰 진전입니다. 우리는 3개의 다른 브라우저로 실행했고, WebSocket 프로토콜의 URL을 알고 있었습니다.
첫 번째 브라우저: 비밀번호 123의 test3 사용자를 등록하고 로그인합니다.
두 번째 브라우저: 우리는 관리자 계정을 사용해 로그인합니다.
세 번째 브라우저: 로그인 불가, 관광객 신분.
로그인된 계정으로 메시지를 보낼 수 있고, 다른 사용자들도 메시지를 받을 수 있다는 것을 발견했습니다(관광객도 메시지를 받을 수 있습니다)
메시지를 보내면 상대방의 닉네임은 자동으로 표시되, 로그인된 계정은 보여주지 않아요.
마지막으로 소스 코드를 첨부해 보겠습니다:
웹 소스 코드:
관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다 회답
시그널러 서버 소스 코드:
관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다 회답
|