codememo

노드.Js + 소켓.IO 대 신호 R 대 C# 웹 소켓 서버

tipmemo 2023. 6. 22. 21:52
반응형

노드.Js + 소켓.IO 대 신호 R 대 C# 웹 소켓 서버

현재 TCP 서버 응용 프로그램이 에 작성되어 있습니다.클라이언트에 메시지를 수신하고 제출하는 네트워크입니다.저는 웹 애플리케이션을 구축하고 있어서 통신 계층이 필요합니다.

노드를 구축했습니다.JS + 소켓.내 TCP 서버에 연결한 다음 웹 애플리케이션에 통신을 푸시하는 IO 앱은 모두 정상적으로 작동합니다.

신호 R을 에 보관하는 대안으로 방금 읽었습니다.넷스택.

하지만 여기서 기본 데모인 C# 웹소켓 서버를 작성할 수 있다는 것도 알게 되었습니다.

저는 이 기본 서버가 SignalR이라고 생각하지만 분명히 훨씬 더 많은 기능을 가지고 있습니까?

제가 결정하려고 하는 것은 현재 TCP 응용 프로그램을 웹 소켓 서버에 추가할 것인가 아니면 별도의 SignalR 또는 Node.js 경로로 갈 것인가 하는 것입니다.관심을 끌기 위해 SignalR 애플리케이션은 어떻게 실행됩니까? Windows 서비스, 콘솔 앱 또는 IIS 서비스 중 어느 것입니까?

신호 R은 소켓과 같습니다.전송 협상/폴백을 지원한다는 점에서 IO.서버가 아닌 프레임워크이므로 서버에서 호스트해야 합니다.ASP.NET, OWIN(예: 카약) 및 셀프 호스트용 호스트가 있으므로 Windows 서비스와 같은 사용자 프로세스에서 쉽게 실행할 수 있습니다.

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

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

기타 시사점

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

  1. 요즘은 노드 쪽을 선호하지만, .NET에서만 작업한다면 SignalR이 확실한 선택입니다.반대로, 만약 당신이 노드에서 모든 프로젝트를 구축한다면, 저는 socket.io 이나 sockjs로 갈 것입니다.폴백 등에 대해 걱정할 필요가 없을 정도로 범위가 좁다면 의존성이 더 간단하고 가벼우므로 ws 모듈을 확인하는 것이 좋습니다.과거에 socket.io 은 네이티브 종속성을 설치하지 못하는 노드 gyp 설치 문제로 인해 윈도우즈에서 골칫거리였습니다(노드 gyp에는 사용 중인 윈도우즈 버전에 따라 매우 다양한 구성 단계가 필요하지만 C++ 네이티브 빌드 모듈에 필요함).업데이트 이 Windows 비트는 Windows 빌드 도구 덕분에 더 이상 관련성이 없습니다.
  2. 로드 밸런서가 있고 SignalR을 실행하려는 경우 로드 밸런서를 바이패스하기 위해 SQL 또는 Redis를 백플레인으로 설정해야 합니다.socket.io 측에서 처리해야 할 유사한 문제가 있을 것이며 [여러 지원 방법][1](그 중 하나는 redis이기도 함)이 있습니다.

업데이트 - 더 이상 적용되지 않으므로 jquery 정보가 제거되었습니다.

확장 가능한/스레드 안전한 TCP 서버를 개발하는 것은 쉬운 일이 아닐 수 있습니다.반면에, 인터넷에는 당신 자신의 것을 시작하기 위해 매우 좋은 자원들이 있습니다.예를 들어, 만약 당신이 몇몇 좋은 오픈 소스 웹소켓 프로젝트를 찾고 있다면, 나의 조언은 다음과 같습니다.

연금술 프로젝트 : 오픈소스 C# 웹소켓 라이브러리

Flek 프로젝트 : 오픈 소스 C# 웹소켓 라이브러리

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

상업적인 제품 측면에서는, 특히 웹소켓 기능이 모든 브라우저에서 사용할 수 없다는 점을 고려하여, PokeIn WebSocket과 역 Ajax Library를 추천합니다.버전 2.0부터는 웹소켓 서버가 내장되어 있습니다.자세한 내용은 여기에서 확인할 수 있습니다.

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

반응형