nowjs和nodejs结合的简单示例
功能:把服务器端的时间new Date().getTime()传送到客户端,主要测试实时性。轮询间隔为10ms时,能正常显示。可同时打开多个窗口,设置不同轮询时间,各个窗口可独立运行。
服务器端代码:
用coffeescript编写
server.coffee
fs = require 'fs'url = require 'url'html = fs.readFileSync(__dirname + '/simple.html')#注意,这里要指向你自己的jquery库地址jquery = fs.readFileSync(__dirname + '/../node/jquery-1.2.6.min.js')server = require('http').createServer((req, res)-> pathname = url.parse(req.url).pathname res.end html if pathname == '/' res.end jquery if pathname == '/jquery.js')server.listen 8080nowjs = require 'now'everyone = nowjs.initialize servertimerid ={}#用于保存setInterval返回值everyone.now.update = -> timerid[@user.clientId]= setInterval => #回调函数,要保存原this,用=>声明函数 @now.updateMe(new Date().getTime()) ,@now.intervaleveryone.now.stop = -> clearInterval(timerid[@user.clientId])everyone.disconnected ->#当断开连接时删除相应的timerid delete timerid[@user.clientId]
exports.clearInterval = function(timer) { if (timer instanceof Timer) { timer.ontimeout = null; timer.close();}
console.log this.now.timerid instanceof Timer #输出false
this.now.myvalue = new String 'a'console.log this.now.myvalue instanceof String #输出false
<!DOCTYPE html><html lang="en"><head> <title>nowjs test</title> <!-- 下面这两个引用不用动,服务器会处理好的 --> <script type="text/javascript" src="/jquery.js"></script> <script src="/nowjs/now.js"></script> <script> $(document).ready(function () { $('#btnStop').attr({"disabled":"disabled"}); //now.ready(function(){//内建函数 //console.log('connect now ready.'); //}); $('#btnStart').click(function () { now.interval = parseInt($('#txtInterval').val()); now.update(); $(this).attr({"disabled":"disabled"}); $('#btnStop').removeAttr("disabled"); }); $('#btnStop').click(function () { now.stop(); $(this).attr({"disabled":"disabled"}); $('#btnStart').removeAttr("disabled"); }); $('#btnClean').click(function () { $('#mess').text(''); }); now.update1 = function (val) { $('#mess').append('<br>' + val); } }); </script></head><body><button id="btnStart">start</button>interval:<input id="txtInterval" type="text" value='1000' size="4"/>ms<button id="btnStop">stop</button><button id="btnClean">clean</button><div id="mess"/></body></html>