0
我有一个nodejs应用程序,我想在其中监控网页上每个传入的请求。我正在尝试使用socket.io来做到这一点。在我的app.js我具有以下文件每个请求上的ExpressJS/Node/Socket.io广播消息
var express = require('express');
var http = require('http');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(3000);
var usageLogger = function(req, res, next) {
console.log("GOT REQUEST !");
var os = require("os"),
cpus = os.cpus();
var url = "URL: " + req.url + "\n" ;
var urlTime = "Time: " + new Date().getTime() + "\n" ;
var liveMessage = "<div><p><b>URL:</b> "+ req.url + "</p><p><b>Time: </b> " + new Date().getTime() + "</p></div>"
io.on('connection', function(socket){
socket.emit('news', liveMessage);
});
}
app.use(usageLogger);
在我footer.jade文件,我有以下几点:
.container
.footer
hr(style='margin: 30px 0 10px 0;')
p ©
a(href='#') Author
| 2014
script(src='/javascripts/bootstrap.min.js')
script(src="/socket.io/socket.io.js")
script(type='text/javascript')
|var socket = io();
|socket.on('news', function(msg){
|$('#messages').append(msg);
|});
block footer
当我访问任何网页,我只得到了广播消息,当我刷新网站的索引页面。因此,例如,当我第一次访问本地主机:300,我可以看到以下内容:
网址:/ 时间:0909234234
不过,如果我打开一个新的标签和访问本地主机:3000 /例子,我要刷新的第一页得到以下观点
网址:/ 时间:0909234234
网址:/例如 时间:0909234239
我奋力看看为什么这不会自动更新而不必刷新页面。任何帮助我非常感谢。
你,当请求中发射的消息广播尝试向所有插座。 – 2014-11-20 18:38:27
@MohammadRahchamani感谢您回复我,我对节点和socket.io相当陌生。你能否提供一个你的意思的例子。 – kushaldsouza 2014-11-20 18:48:55
@MohammadRahchamani感谢您的帮助。我想到了。如果你可以在下面发表你的回答,我会接受。再次感谢。 – kushaldsouza 2014-11-20 18:57:49