2017-03-02 47 views
0

我刚刚使用socket.io和jQuery制作了一个聊天室。我不确定如何使它在线,所以我只是上传文件到我有一个旧的FTP。 (我和node.js的真新)加载了该网站是正常的,但是当我在控制台看上去有错误jQuery与socket.io错误

Uncaught ReferenceError: io is not defined 
    at HTMLDocument.<anonymous> ((index):55) 
    at j (jquery-latest.min.js:2) 
    at Object.fireWith [as resolveWith] (jquery-latest.min.js:2) 
    at Function.ready (jquery-latest.min.js:2) 
    at HTMLDocument.J (jquery-latest.min.js:2) 
(anonymous) @ (index):55 
j @ jquery-latest.min.js:2 
fireWith @ jquery-latest.min.js:2 
ready @ jquery-latest.min.js:2 
J @ jquery-latest.min.js:2 

错误指向到HTML代码中<script>标签(第一变量集是哪里出错):

<script> 
    $(function(){ 
     var socket = io.connect(); 
     var $messageForm = $('#messageForm'); 
     var $message = $('#message'); 
     var $chat = $('#chat'); 
     var $messageArea = $('#messageArea'); 
     var $userFormArea = $('#userFormArea'); 
     var $userForm = $('#userForm'); 
     var $users = $('#users'); 
     var $username = $('#username'); 

     $messageForm.submit(function(e){ 
      e.preventDefault(); 
      socket.emit('send message', $message.val()); 
      $message.val(''); 
     }); 

     socket.on('new message', function(data){ 
      $chat.append('<div class="well"><strong>'+data.user+'</strong>: '+data.msg+'</div>'); 
     }); 

     $userForm.submit(function(e){ 
      e.preventDefault(); 
      socket.emit('new user', $username.val(), function(data){ 
       if(data){ 
        $userFormArea.hide(); 
        $messageArea.show(); 
       } 
      }); 
      $username.val(''); 
     }); 

     socket.on('get users', function(data){ 
      var html = ''; 
      for(var i = 0;i < data.length;i++){ 
       html += '<li class="list-group-item">'+data[i]+'</li>'; 
      } 
      $users.html(html); 
     }); 
    }); 
</script> 

我想在网上把这个网站,并与socket.io和Node.js的,因为它是一个更大的项目我工作的一部分运行。如果我完全错了,我很抱歉。你们能帮我解决这个错误吗?或者告诉我我做错了什么。
非常感谢。

回答

1

你需要你的脚本定义之前导入socket.io库:

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js"></script>