【发布时间】:2013-01-10 10:58:48
【问题描述】:
我正在尝试了解所有推送通知的工作原理。我试图对推送技术进行一些测试,但到目前为止我失败了。
基本假设是:
1) 使用 Apache web-server 作为主应用程序 web-server(必须的,因为我们所有的代码都在使用它)
2)node.js技术中的跨浏览器推送通知服务器(提供socket.io,因为它是跨浏览器)。
到目前为止我失败了,这是我的代码(p1.html):
<!doctype html><html><head>
<meta charset="UTF-8"><title>P1</title></head><body>
<h1>P1</h1><section id="content"></section><script src="/socket.io.js"></script> <!--socket.io--><script src="/socket.js"></script> <!--socket.io-client--><script src="http://code.jquery.com/jquery-1.7.1.min.js"></script><script>
var socket = io.connect('http://localhost:8080');
socket.on('notification', function (data) {$('#content').append(data.message + '<br>')
});
</script>
</body>
</html>
和我的服务器脚本(p1.js):
var app = require('http').createServer(handler), io = require('socket.io').listen(app), url = require('url')app.listen(8080);
console.log("creating a connection");io.sockets.on( 'connection', function ( socket ) {
console.log("runing time");sendTimeMessage(socket);});
function sendTimeMessage(socket){
console.log("in time");var time= new Date().getTime();console.log(time);socket.volatile.emit( 'notification' , time );setTimeout(sendTimeMessage, 5000);}
function handler (req, res) {res.writeHead(200, {'Content-Type': 'text/plain'});res.end("");}
function sendMessage(message) {
io.sockets.emit('notification', {'message': message});}
- 我将示例中的 IP 更改为本地主机,所以我希望语法没有错误。
- 当我运行时,Apache Web 服务器是显示数据的服务器,其想法是让 socket-io 更新几个字段。
当前状态:
1. 如果我不添加 socket.io-client js 文件,我会收到 socket.io-client 的引用错误
2. 如果我添加 socket.io-client 我得到“ReferenceError: require is not defined
[中断此错误] 'undefined' != typeof io ? io : 模块.exports
我真的需要帮助来理解它并让它发挥作用。我也对替代解决方案持开放态度 我真的需要帮助才能完成这项工作。
【问题讨论】:
-
好吧,我看到你在 require('url') 的末尾没有分号。
标签: apache node.js push-notification socket.io push