2014-03-27 4 views
1

다른 타사 응용 프로그램과 UDP 소켓을 통해 통신하고 로컬 브라우저 창을 통해 일부 데이터를 나타낼 수 있어야하는 JavaScript 응용 프로그램을 개발하고 싶습니다.UDP 소켓을 사용하는 자바 스크립트 응용 프로그램 - NodeJS & SocketIO

내가 아는 한 UDP 소켓 연결을 위해 NodeJS를 사용해야하고, 이미 잘 작동하는 샘플 UDPserver.js 예제를 테스트했다.

이제 문제는 브라우저에서 실행되는 메인 애플리케이션으로 NodeJS 콘솔에서 로컬로 실행되는 UDP 서버에서받은 데이터를 전달할 수 있다는 것입니다. 이 실시간 연결을 달성하려면 Socket.IO를 사용해야한다는 것을 읽었습니다.

그래서 클라이언트 컴퓨터와 서버 응용 프로그램을 같은 컴퓨터에서 동시에 실행하는 것과 비슷합니다. socketIO가 두 부분을 정확히 연결하는 방법은 무엇입니까? NodeJS 또는 sth를 사용하여 내 응용 프로그램을 연결하기 위해 WebSocket을 사용해야합니까?

| JQUERY JS |   | NODE.JS |      |  C++  | 
    |    | [?] |   | [UDP SOCKETS] |    | 
    |LOCAL WEB APP| <=====> |UDP SERVER| <-----------------> |3RD-PARTY APPS| 
    | (local) |   | (local) |      | (network) | 

누군가 나를 위해 그것을 약간 지울 수 있습니까? 비교적 쉬운 일 이겠지만, 저는 이것에 처음 접했습니다.

+0

직접 UDP 패킷 버퍼를 스트리밍 할 수있는 등 여러 가지 전송을 통해, 웹 소켓 같은 기능뿐만 아니라 RPC를 제공하는 이상의 추상의 또 다른 계층입니다 바이너리로 websocket하지만 좋은 결과를주지 않을 것입니다. TCP가 옵션이 아닌가요? 사용할 수있는 몇 가지 좋은 다리가 있습니다. websocket. – Gntem

+0

ye, 나는 websockify와 같은 그 중 일부를 확인했습니다. 그것은 잘 작동하지만 불행히도 내가 연결하고 싶은 세 번째 부분의 응용 프로그램은 독점적으로 UDP 소켓을 사용하고 있습니다 .. – LePhleg

답변

2

일반 브라우저는 자바 스크립트를 소켓에 직접 연결하지 않으므로 웹 페이지만으로이 작업을 수행 할 수는 없습니다. 노드 중개자를 사용하고 웹 소켓을 통해 브라우저를 연결하면 올바르게 작동합니다.

그러나 애플리케이션은 동일한 패키지의 Chromium 브라우저와 node.js가 통합 된 node-webkit에 가장 적합 할 수 있습니다. 즉, 웹 페이지 코드에서 UDP 소켓과 같은 노드 API를 직접 사용할 수 있습니다.

+0

와우 흥미로운 .. 나는 이것을 조사 할 것입니다 – LePhleg

+0

좋아, 마침내 확신합니다. 'Node-WebKit'은 나를 위해 훨씬 더 간단하게 작업을 수행 할 것입니다! 고마워요 조쉬, 대답이 승인되었습니다! – LePhleg

3

브라우저가 UDP를 통해 통신 할 수 없습니다. (어쨌든 WebRTC 외부)

웹 소켓은 실제 네트워크 소켓이 아닙니다. 그것들은 HTTP 요청을 통해 처음 설정되는 TCP 연결을 통해 추상화 계층입니다.

Socket.IO 등 WebSocket을, 긴 폴링 JSON,

관련 문제