2017-09-16 230 views
0

我想第一次学习socket.io和Nodejs。socket io未找到错误?

我在root的服务器上安装了nodejs和socket.io。一切都安装在根目录中。

在我的领域,我创建了一个test-folder和该文件夹中创建的index.html文件,放在里面的代码:

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.2/socket.io.min.js"></script> 
    <script> 
     $(function(){ 
      var iosocket = io.connect(); 
      iosocket.on('connect', function() { 
       $('#incomingChatMessages').append($('<li>Connected</li>')); 
       iosocket.on('message', function(message) { 
        $('#incomingChatMessages').append($('<li></li>').text(message)); 
       }); 
       iosocket.on('disconnect', function() { 
        $('#incomingChatMessages').append('<li>Disconnected</li>'); 
       }); 
      }); 
      $('#outgoingChatMessage').keypress(function(event) { 
       if(event.which == 13) { 
        event.preventDefault(); 
        iosocket.send($('#outgoingChatMessage').val()); 
        $('#incomingChatMessages').append($('<li></li>').text($('#outgoingChatMessage').val())); 
        $('#outgoingChatMessage').val(''); 
       } 
      }); 
     }); 

    </script> 
</head> 
<body> 
Incoming Chat: <ul id="incomingChatMessages"></ul> 
<br /> 
<input type="text" id="outgoingChatMessage"> 
</body> 
</html> 

然后我又回到了根,并创建了一个app.js文件放在这个代码在它:

var fs = require('fs') 
    , http = require('http') 
    , socketio = require('socket.io'); 
var server = http.createServer(function(req, res) { 
    res.writeHead(200, { 'Content-type': 'text/html'}); 
    res.end(fs.readFileSync(__dirname + '/var/www/vhosts/my-website.net/httpdocs/test-folder/index.html')); 
}).listen(8080, function() { 
    console.log('Listening at: http://localhost:8080'); 
}); 
socketio.listen(server).on('connection', function (socket) { 
    socket.on('message', function (msg) { 
     console.log('Message Received: ', msg); 
     socket.broadcast.emit('message', msg); 
    }); 
}); 

而跑到离SSH命令:

node app.js 

以上retunr此命令:

Listening at: http://localhost:8080 

我然后打开从浏览器像这样index.html文件:

http://my-website.net/test-folder/index.html 

但是当我看控制台内部,我看到以下错误重复一遍又一遍:

socket.io.min.js:1 GET http://my-website.net/socket.io/?EIO=3&transport=polling&t=1505580173244-3 404 (Not Found) 

我不知道这意味着什么或我需要做什么。有人可以就这个问题提出建议吗?

任何帮助,将不胜感激。

在此先感谢。

回答

0

你的第一个问题是你的脑袋里tag.If你已经安装socket.io没有必要把它通过链接

咱们replce这样:

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

与此一:

<script src="/socket.io/socket.io.js"></script> 
+0

现在,我得到这个错误:(指数):7未捕获的ReferenceError:IO没有定义 –

+0

@DavidHope是'/socket.io/socket.i o.js'正确加载? – Boaz

+0

@Boaz,我很困惑这个socket.io ...我没有任何/socket.io/socket.io.js ...哪里是socket.io.js应该在我的服务器上? –