我正在开发一个简单的socket.io项目,并且遇到了问题。当我将脚本<script src="/socket.io/socket.io.js"></script><script type="text/javascript">var socket = io(); </script>
添加到头部时,我期待应用程序识别此问题,但是在我的控制台中收到了错误消息GET http://localhost:5678/socket.io/socket.io.js
和Uncaught ReferenceError: io is not defined
。我正在使用快速框架。将socket.io/socket.io.js加载到html头部,返回“ReferenceError:io未定义”
var express = require('express');
var router = express.Router();
var http = require('http').Server(express);
var io = require('socket.io')(http);
/* GET home page. */
router.get('/', function(req, res) {
res.render('index', { title: 'NodeIM' });
});
io.on('connection', function(socket){
console.log('a user connected');
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
server = http.listen(3000, function() {
console.log('Listening on port %d', server.address().port);
});
module.exports = router;
HTML:
<html>
<head>
<title>NodeIM</title>
<link rel="stylesheet" href="/stylesheets/style.css">
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript">var socket = io(); </script>
<style type="text/css"></style>
</head>
<body>
<h1>NodeIM</h1>
<p>Welcome to NodeIM</p>
<hr>
<ul id="messages"></ul>
<form id="im_form" action=""><input id="m" autocomplete="off"><button>Send</button></form>
</body>
</html>
注:我也试图按照socket.io - ReferenceError: io is not defined和改变了我的SRC到src="http://localhost:5678/socket.io/socket.io.js"
,但它并没有解决这个问题。我也试着使用Node.js socket.io.js not found or io not defined,这只是表明我需要socket.io的另一种方式,但不能解决我有对src
您使用的是什么版本的Express?这个错误很可能是因为你没有正确完成服务器端的初始化,所以socket.io库没有为'/ socket.io/socket.io.js'设置路由。 – jfriend00 2014-10-16 18:26:00
我正在使用Express版本'4.9.0' – maudulus 2014-10-16 18:35:34