programing tip

Node.Js + Socket.IO 대 SignalR 대 C # WebSocket 서버

itbloger 2020. 10. 30. 07:48
반응형

Node.Js + Socket.IO 대 SignalR 대 C # WebSocket 서버


현재 클라이언트에 메시지를 수신하고 제출하는 .Net으로 작성된 TCP 서버 응용 프로그램이 있습니다. 웹 응용 프로그램을 구축하려고하므로 통신 계층이 필요합니다.

내 TCP 서버에 연결 한 다음 웹 응용 프로그램에 통신을 푸시하는 Node.JS + Socket.IO 앱을 구축했으며 모두 정상적으로 작동합니다.

.Net 스택에 보관하는 대안으로 SignalR에 대해 읽었습니다.

그러나 여기 에서 기본 데모 인 C # Websocket Server를 작성할 수 있음을 발견했습니다.

이 기본 서버가 SignalR이라고 가정하지만 분명히 더 많은 기능이 포함되어 있습니까?

내가 결정하려는 것은 현재 TCP 애플리케이션에 Websocket 서버를 추가하거나 별도의 SignalR 또는 Node.js 경로로 이동하는 것입니까? 관심이없는 SignalR 애플리케이션은 Windows 서비스, 콘솔 앱 또는 IIS 서비스로 실행됩니까?


SignalR은 전송 협상 / 대체를 지원한다는 점에서 Socket.IO와 같습니다. 서버가 아니라 프레임 워크이므로 일종의 서버에서 호스팅해야합니다. ASP.NET, OWIN (예 : Kayak) 및 자체 호스트 용 호스트가 있으므로 Windows 서비스와 같은 자체 프로세스에서 쉽게 실행할 수 있습니다.

SignalR은 브라우저 (JS), .NET, Windows Phone 7 및 Silverlight 용 클라이언트를 지원합니다. iOS, Mono Touch 등과 같은 것에 기여한 클라이언트도 있습니다.

SignalR은 원시 소켓보다 훨씬 높은 수준의 API를 제공하므로 서버에서 클라이언트로 브로드 캐스트 (또는 대상) 방식으로 "RPC"와 같은 작업을 수행 할 수 있습니다.


다른 의미

나는 두 기술을 모두 사용했으며 .NET / 노드 스택의 양쪽에서 작업했습니다.

  1. 요즘 노드 측을 선호하지만 .NET에서만 작업하는 경우 SignalR이 확실한 선택입니다. 반대로 노드에서 모든 프로젝트를 빌드하면 socket.io 또는 sockjs를 사용 합니다. 범위가 좁아서 폴 백과 그런 종류의 것에 대해 걱정할 필요가 없다면 ws 모듈이 더 간단하고 가볍기 때문에 확인하는 것이 좋습니다 . 과거에 socket.io는 node-gyp가 네이티브 종속성을 설치하지 못하는 설치 문제로 인해 Windows에서 고통 스러웠습니다 ( node-gyp 에는 보유한 Windows 버전에 따라 크게 다르지만 C ++에 필요한 많은 구성 단계가 필요합니다. 네이티브 빌드 모듈). 업데이트이 Windows 비트는 더 이상 관련성이 없습니다.windows-build-tools .
  2. 로드 밸런서가 있고 SignalR을 실행할 계획이라면 SQL 또는 Redis를 백플레인으로 설정하여로드 밸런서를 우회해야합니다. socket.io 측에서 처리해야 할 유사한 문제가 있으며 [여러 지원 방법] [1]이 있습니다 (그 중 하나는 redis이기도합니다).

업데이트-더 이상 적용 할 수 없으므로 jquery 정보 제거


확장 가능 / 스레드 안전 TCP 서버를 개발하는 것은 쉬운 일이 아닐 수 있습니다. 다른 한편으로, 자신을 시작하기 위해 인터넷에 아주 좋은 리소스가 있습니다. 예를 들어, 멋진 오픈 소스 WebSocket 프로젝트를 찾고 있다면 제 조언은 다음과 같습니다.

Alchemy 프로젝트 : 오픈 소스 C # WebSocket 라이브러리

Fleck 프로젝트 : 오픈 소스 C # WebSocket 라이브러리

SignalR은 좋지만 WebSocket 기능을 제공하려면 Windows Server 8 / IIS 8이 필요합니다.

상업용 제품 측면에서는 특히 웹 소켓 기능이 모든 브라우저에서 제공되지 않는다는 점을 고려할 때 PokeIn WebSocket 및 리버스 Ajax 라이브러리를 권장합니다. 버전 2.0부터 내장 WebSocket 서버가 있습니다. 여기 에서 볼 수있는 세부 정보

참고 URL : https://stackoverflow.com/questions/9537641/node-js-socket-io-vs-signalr-vs-c-sharp-websocket-server

반응형