2011-10-05 4 views
1

포트 8181에 소켓을 만드는 서버가 있습니다. Chrome 14에서 열린 웹 페이지에서 해당 소켓에 액세스하고 싶습니다. 직선적으로 가능하지 않다고 가정합니다. Chrome은 웹 소켓을 지원하지만 표준 소켓을 지원하지 않습니다. 그게 맞습니까?웹 소켓을 통해 소켓 노출

어떻게 든 다른 포트에서 실행되는 웹 소켓 서버로 포트 8181에서 수신 대기하는 소켓 서버를 노출하는 중개자를 생성 할 수 있습니까?

+0

Node.js에서 서버와 클라이언트를 모두 만들 수 있습니다. 포트에 WebSockets 서버 (예 : 8182)와 포트 8181에 연결하는 클라이언트를 모두 포함하는 응용 프로그램을 만들 수 있습니다. 웹 데이터 형식을 디코딩 한 후 모든 들어오는 데이터를 8181로 라우팅하고 8181에서받은 모든 데이터 WebSockets 형식으로 변환하고 클라이언트 (Chrome)로 전달합니다. – pimvdb

+0

자세히 알고 싶습니다. 나만의 서버를 만들고 있습니까? Tomcat이나 Apache와 같은 서버를 사용하고 있습니까? GlassFish 응용 프로그램 서버에는 websocket 서버 인 grizzly가 포함되어 있습니다. 지금 조사 중이 야. 나쁜 소식 (영원히 지속되어서는 안됨)은 아직 어떤 실례를 발견하지 못했다는 것입니다. –

+0

@mgamer, 질문에 대한 답변이 충분합니까? – kanaka

답변

6

websockify은 TCP 소켓 프록시/브리지에 대한 일반적인 WebSockets입니다. noVNC (HTML5 VNC 클라이언트)이 패치되지 않은 VNC 서버에 연결할 수 있도록 원래 websockify를 만들었습니다. 하지만 일반적으로 유용한 (VNC가 아닌) 것이므로 별도의 프로젝트로 사용합니다. 이 같은 websockify 실행됩니다 유닉스/리눅스 시스템에서

: 위의 예에서

./websockify 8080 my_server:8181 

포트 8080는 웹 소켓 연결을 수신하는 포트입니다. my_server는 서버가 8181 포트에서 수신 대기중인 시스템의 이름/IP입니다. 서버와 동일한 시스템에서 websockify를 실행중인 경우 'my_server'대신 localhost을 사용할 수 있습니다.

websockify 프로젝트에는 websock.js라는 Javascript 래퍼 라이브러리도 함께 제공됩니다. websockify는 새로운 프로토콜 버전 (Chrome 14+ 및 Firefox 6+에서 사용)을 지원하지만 이전 버전에서도 작동합니다. 그러나 이전 버전의 프로토콜에서는 원시 이진 데이터 (UTF-8 만)를 보낼 방법이 없기 때문에 websock.js와 websockify가 함께 사용하여 base64 인코딩/디코딩 (브라우저와 websockify 사이에서)을 사용할 때 이전 프로토콜을 사용하여 원시 2 진 데이터를 대상으로 보내거나받을 수 있습니다.

+0

하지만 웹 사이트 링크의 문서를 기반으로하면 Chrome 14에서는 작동하지 않습니다. –

+0

@ RogerF.Gay, 어떤 웹 사이트 정보를 말하는지 모르지만 websockify는 Chrome 14에서 올바르게 작동합니다. WebSockify는 Hixie 버전 모든 HyBi 버전의 프로토콜 (즉, 모든 종류의 WebSocket 지원이있는 모든 브라우저에서 작동합니다). – kanaka

+1

BTW, 프로토콜 및 이진 데이터 지원에 대해보다 명확하게 websockify README를 업데이트했습니다. – kanaka

관련 문제