2017-12-15 16 views
1

C# console에서 Node.js를 사용하지 않고 브라우저에서 웹 소켓을 열 수 있습니까? 의미, 실시간으로 브라우저에서 메시지를 보내고받을 수있는 서버에서 항상 실행중인 활성 및 열린 C# 콘솔 응용 프로그램입니다.C# 콘솔 응용 프로그램과 브라우저 사이의 웹 소켓

socket.io.js JS 파일 (https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js)을로드하는 브라우저를 사용하고 TcpListener 클래스를 사용하여 C# 콘솔 응용 프로그램을 만들려고했습니다. 그리고 성공적인 연결이있는 것 같습니다. 하지만 서버와 클라이언트간에 메시지를 보낼 수 없습니다.

+0

예 가능하지만 raw TcpListener가 아닌 전용 websocket 라이브러리를 사용하십시오. – Evk

+0

예, [redHttpServer] (https://www.nuget.org/packages/RHttpServer/) 또는 SignalR을 programmerj에서 설명한대로 사용할 수 있습니다. 이 라이브러리에는 여러 가지 라이브러리가 있으므로 TcpListener 클래스 대신 해당 라이브러리 중 하나를 사용하십시오. 그러면 WebSocket procotol을 직접 구현해야하므로이 라이브러리 중 하나를 사용하십시오. –

+0

Side-note : C# 응용 프로그램에 브라우저 연결을 설정하려는 것처럼 질문을 읽는 것 같습니다. 웹 소켓에서는 브라우저가 서버에 대한 연결을 열어야하므로 불가능합니다. C# 응용 프로그램은 확실히 Websocket 연결을 수신 할 수 있지만 시작할 수는 없습니다. 나는 이것이 당신이 실제로 의미했던 것이라고 확신하지만, 당신이 당신의 질문을 쓴 방법은 약간 혼란 스럽습니다. – Myst

답변

0

예, 여러 번했습니다.

C# console/Windows 서비스 : SignalR 라이브러리를 사용하십시오. NuGet을 통해 가져올 수 있어야합니다.

웹 응용 프로그램 : jquery.signalr-x.x.x.js 라이브러리를 사용하십시오.

SignalR은 주로 .NET 어플리케이션의 SignalR 허브와 웹 어플리케이션의 jquery.signalr 클라이언트 라이브러리 사이에 WebSocket 연결을 설정해야합니다.