2014-06-16 3 views
0

누군가가 나에게 설명 할 수 정의되지 않은 이유는이 작품 :Socket.io는

<script src="//cdn.socket.io/socket.io-1.0.4.js"></script> 
<script> 
     var socket = io('http://nodeapp.herokuapp.com'); 
     console.log(socket); 
</script> 

하지만이 작동하지 않습니다

<script async src="//cdn.socket.io/socket.io-1.0.4.js"></script> 
<script> 
     var socket = io('http://nodeapp.herokuapp.com'); 
     console.log(socket); 
</script> 

오류는 다음과 같습니다

 Uncaught ReferenceError: io is not defined 

또는 require.js와 함께 클라이언트 쪽에서 socket.io 라이브러리를 추가 할 수 있으며이 경우 위의 오류없이 작동합니다.

답변

4
<script async ... 

브라우저가 스크립트를 가져올 때까지 기다리지 말라고 명시 적으로 요청하십시오.

따라서 다음 스크립트로 가기 전에 스크립트를 가져 와서 실행하지 않습니다. 당신이

var socket = io('http://nodeapp.herokuapp.com'); 

The MDN on script async

+0

에 갈 때 나중에 콘솔에 연결하려고하면 그리고 이렇게 io 아직 오류가 여전히 정의되어 있지 않습니다. – Vlatko

+1

진짜 질문은 require.js로로드 된 socket.io (1.0.x)가 전역 적으로 사용할 수없는 이유입니다. 버전 0.9로 모든 것이 잘 작동합니다 ... – Vlatko

관련 문제