2011-11-13 2 views
1

socket.io와 함께 Node.js를 사용하여 내 페이지 중 하나에 웹 소켓을 구현하고 있습니다. server.js는 (Node.js를 실행 무엇을)이 코드가 있습니다WebSocket이 socket.io에 연결되지 않음

var http = require("http").createServer(), 
io = require("socket.io").listen(http); 

http.listen(8080); 

io.sockets.on("connection", function(socket) { 
     socket.emit("message", {hello:"world"}); 
}); 

을 그리고 이것은 내가 함께 연결하기 위해 노력하고있어 코드입니다 : 내가 페이지를로드 할 때

var socket = new WebSocket("ws://92.60.122.235:8080/"); 
socket.onopen = function() { 
    alert("Socket has been opened!"); 
} 

는, 아무 일도 발생하지 않습니다. Chrome을 사용하고 있으며 웹 소켓이 지원된다는 사실을 알고 있습니다. 오류 콘솔에는 오류가 없으며 명령 줄에서 socket.io 서비스 요청을 볼 경우 사용자가 연결되지 않습니다.

내가 알기로는, 아무도 잘못 될 수 있다고 설명 할 수 있습니까?

+1

왜 socket.io 클라이언트를 사용하지 않습니까? 나는 그들이 어떤 인증을 가지고 있다고 믿는다. 그래서 이것은 작동하지 않아야한다. –

+0

아, 클라이언트를 사용할 필요가 있다는 것을 알지 못했습니다. 내가 다시 시도해 볼게. –

+0

좋아, 모든 다른 스크립트 위에 스크립트 태그에 socket.io를 추가했지만 여전히 작동하지 않습니다. 이전과 같은 문제. 서버가 실제로 socket.io 클라이언트 스크립트를 제공하고 있는지 확인했습니다. –

답변

6

내가 믿는 인증 단계를 통과하려면 socket.io 클라이언트가 필요합니다. 이것을 시도해 보면 작동 할 것입니다 (클라이언트 자바 스크립트는 socket.io 자체가 제공하므로 걱정하지 마십시오). http://socket.io/#faq

에서

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost'); 
    socket.on('message', function (data) { 
    console.log(data); 
    socket.emit('helloworld', { msg: 'why do you so love to say hello world?' }); 
    }); 
</script> 

왜 그냥 실제 웹 소켓이 없는 경우 WebSocket를 호출하고 API를 해내는? 웹 소켓이 전송으로 선택하고 사용자가 울트라 현대 브라우저 당신의 웹 사이트를 탐색하는 경우

Socket.IO는 웹 소켓, 심지어 보다 더 많은 작업을 수행합니다. 하트 비트, 시간 초과 및 연결 해제 지원과 같은 특정 기능은 실시간 응용 프로그램에 필수적이지만 WebSocket API에서는 기본적으로 제공되지 않습니다.

이것은 XMLHttpRequest를 정규화하는 것과는 대조적으로 기능이 풍부한 간단한 $ .ajax API를 만드는 jQuery의 결정과 유사합니다.

+0

감사합니다. socket.io 클라이언트 스크립트를 추가했지만 실제로 사용하도록 코드를 변경하는 것을 잊었습니다. io.connect 및 socket.on 등을 사용하면 완벽하게 작동합니다. 감사합니다. –

+0

alFReD NSH가 맞습니다. @Martin Hoe Web 접근 방식을 사용하는 몇 가지 브라우저에서만 작동하기 때문에 WS 접근 방식을 사용하면 안됩니다 (예 : FF로 작동하지 않습니다). – alessioalex

+0

소켓 -io에 대한 가장 좋은 점은 크로스 브라우저, 크로스 도메인, 크로스 ..., 모든 곳에서 작동한다는 것입니다. 그리고 그것은 WebSockets 이상입니다. –

0

Chrome, Firefox 및 IE (적어도)에서 실행되는 웹 페이지 소스 코드는 고급 논리 프로젝트의 블로그 문서 "Websocket Server Demonstration"을 통해 다운로드 할 수 있습니다. 웹 페이지는 개발자를 위해 설정됩니다.

관련 문제