2013-06-23 6 views
2

Я знаю, что здесь много говорится об ошибке. Но после нескольких сообщений, найденных через google, это все еще не решило мою проблему.Uncaught ReferenceError: io не определен

Я получаю вышеуказанную ошибку при попытке включить io javascript в свой индекс index.html.

Я пробовал: <script src="http://localhost:8080/socket.io/socket.io.js"></script> И <script src="/socket.io/socket.io.js"></script>

И даже пытался переключая порт 3000. Проблема все еще сохраняется, тем не менее.

Я попытался перезагрузить приложение app.js и переустановить socket.io (хотя это в моем пакете) с npm install socket.io. Я вижу, что папка socket.io создается в моей папке node_modules.

Я начинаю свой сервер следующим образом:

var express = require('express'); 

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

app.listen(8080); 

И мой указательный также загружает последнюю версию JQuery от Google: <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

Мой терминал показывает, что socket.io запускается, когда я перезагрузить app.js :

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

Где ошибка? В клиенте или на сервере? (Я _assuming_ код, который вы разместили здесь, является серверным, я очень надеюсь, что так) –

+0

Это в моей консоли Chrome. Так что это клиенты. – CaptainCarl

+0

Уход за публикацией клиентского кода, который вы используете? Эта ссылочная ошибка не имеет ничего общего с серверной стороной. –

ответ

11

В коде изменить

app.listen(8080); 

этой

server.listen(8080); 
+0

Любая причина для нижнего уровня? – user568109

+0

Вы потрясающий человек .... и может я знаю причину этого? – Jana

Смежные вопросы