2013-06-23 3 views
2

여기는 많은 오류가 있습니다. 그러나 Google을 통해 발견 된 일부 게시물은 여전히 ​​내 문제를 해결하지 못했습니다.잡히지 않은 ReferenceError : io가 정의되어 있지 않습니다.

내 index.html에 io javascript를 포함 시키려 할 때 위의 오류가 발생합니다.

이 나는 ​​시도했다 : <script src="http://localhost:8080/socket.io/socket.io.js"></script> 그리고

심지어 문제가 계속 그럼에도 불구하고 계속 3000로 포트를 전환 시도 <script src="/socket.io/socket.io.js"></script>.

내 app.js를 다시 시작하고 socket.io를 다시 설치해 보았습니다 (내 패키지에도 있음). npm install socket.io. 내 node_modules 폴더에 socket.io 폴더가 만들어져있는 것을 볼 수 있습니다.

나는 다음과 같은 내 서버를 시작

var express = require('express'); 

var app = express(), 
    server = require('http').createServer(app), 
    io = require('socket.io').listen(server); 

app.listen(8080); 

그리고 내 인덱스는 구글의 최신 jQuery를로드 : <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

내 터미널 내 app.js를 다시 시작할 때 socket.io 시작되었는지 보여줍니다 :

23 Jun 13:31:56 - [nodemon] starting `node app.js` 
    info - socket.io started 

총 내 index.html을 (나는/다시 입력 튜토리얼에서 리모델링 : http://psitsmike.com/2011/09/node-js-and-socket-io-chat-tutorial/)

코드에서
<script src="http://localhost:8080/socket.io/socket.io.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 

<script> 

    var socket = io.connect(); 

    socket.on('connect', function() { 
     socket.emit('adduser', prompt("Hoe heet je?")); 
    }); 

    socket.on('updateChat', function(username, data) { 
     $('#conversation').append('<strong>' + username + '</strong> says: ' + data + '<br>'); 
    }); 

    socket.on('updateUsers', function(data) { 
     $('#users').empty(); 
     $.each(data, function(k, v) { 
      $("#users").append('<div>' + k + '</div>'); 
     }); 
    }); 

    $(document).ready(function() { 
     $('#datasend').click(function() { 
      //get the message and empty the input 
      var msg = $('#data').val(); 
      $('#data').val(''); 

      //Let the server execute sendchat along with the msg 
      socket.emit("sendChat", msg); 
     }); 

     //ENTER key 
     $('#data').keypress(function(e) { 
      keyCode = (e.keyCode ? e.keyCode : e.which); 
      if (keycode == 13) { 
       $(this).blur(); 
       $('#datasend').focus().click(); 
      } 
     }); 
    }); 

</script> 
<div style="float:left;width:100px;border-right:1px solid black;height:300px;padding:10px;overflow:scroll-y;"> 
    <b>USERS</b> 
    <div id="users"></div> 
</div> 
<div style="float:left;width:300px;height:250px;overflow:scroll-y;padding:10px;"> 
    <div id="conversation"></div> 
    <input id="data" style="width:200px;" /> 
    <input type="button" id="datasend" value="send" /> 
</div> 
+0

app.listen(8080); 

을 변경? 클라이언트 또는 서버에서? (내가 여기에 게시 한 코드는 서버 측에 있습니다. 그럴만 한 희망입니다.) –

+0

Chrome의 제 콘솔에 있습니다. 그래서 그것은 고객입니다. – CaptainCarl

+0

사용중인 클라이언트 코드를 게시하는 데주의하십시오? 이 참조 오류는 서버 측과 아무 관련이 없습니다. –

답변

11

, 오류가이

server.listen(8080); 
+0

downvote에 대한 이유가 무엇입니까? – user568109

+0

당신은 멋진 사람입니다 .... 그리고 그 이유를 알 수 있습니까? – Jana

관련 문제