我有以下app.js發射的值不能被添加到DIV express.js socket.io
var express = require('express');
var app = express();
// var responseHandlerRouter = require('./routes/responseHandlerRouter.js');
routes = require('./routes');
var server = app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
io = require('/usr/local/lib/node_modules/socket.io').listen(server);
app.use('/', routes(io));
routes.js
var express = require('express');
var router = express.Router();
module.exports = function (io) {
// all of this router's configurations
router.get('/login', function (req, res, next) {
io.emit('notification', 'news');
res.end('well finally I am here');
});
return router;
}
的index.html
<!doctype html>
<html>
<head>
<script src="http://127.0.0.1:3000/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:3000/login');
socket.on('notification', function (data) {
console.log(data);
});
</script>
</head>
<body>
<ul id='messages'></ul>
</body>
</html>
當我做了一個URL的時候,它應該發出,但它不會發生。它沒有顯示任何錯誤,但失敗了。
有什麼不對嗎?
更新
我要顯示在div的 「新聞」。 但我不能把這段如下
.... socket.on('notification', function (data) {
$('#messages').html(data);
});
</script>
</head>
<body>
<ul id='messages'></ul>
</body>....
將使這個資格賞金
你確實要求'/login與ajax? –
不,我剛剛做了一個使用郵遞員或通過訪問本地主機:3000 /通過瀏覽器登錄。 – Ajeesh
你的html頁面實際上是一個登錄頁面嗎?所以你要求'/ login'和login.html呈現,如果是的話,socket需要時間來連接 –