我正在開發一個簡單的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