Tag: nowjs

Node.jscallback混淆

我正在尝试使用nowjs在nodejs应用程序上实现一个自动完成器。 everyone.now.sendAutocomplete = function(search) { var response = getAutocomplete(search); console.log("response"); console.log(response); }; 其中呼吁: function getAutocomplete(search) { console.log(search); var artist = new Array(); request({uri: 'http://musicbrainz.org/ws/2/artist/?query=' + search + '&limit=4', headers: "Musicbrainz Application Version 1"}, function(error, response, body) { par.parseString(body, function(err, result) { var count = result['artist-list']['@']['count']; var artists = result['artist-list']['artist']; // var artist = new Array(); […]

规模SocketIO(NowJS)

我目前正在使用Linode来部署我的应用程序。 我有2个服务器,1个数据库服务器,前面有1个负载均衡器。 我使用Redis作为Database和NowJS来实现聊天室。 一切工作正常使用Pub / Sub。 现在,我想用集群来利用多核服务器。 但是,在应用群集时,我遇到了奇怪的情况。 有时,应用程序工作,有时不是约25%的工作,75%的工作(我跑了4个进程)。 因此,我可以认为集群导致nowJS无法正常工作。 现在,我必须做出决定 1.切换到SocketIO并使用RedisStore(对于SocketIO,我还可以使用pub / sub和RedisStore?还是完全切换到RedisStore) 2.忘记群集,如果需要添加更多的服务器(这是浪费资源,因为没有使用多个核心) P / s:我很抱歉我的英文不好,我不是本地人。

Socket.io通过XHR轮询不通过Cookie

我试图将Express(3.x)与NowJS(主要是围绕着Socket.io的封装)结合起来创build一个实时应用程序,首先需要你login。我确实是Node的新手,但是我有一个很好的处理每个包如何独立工作。 但是,从NowJS访问快速会话信息是给我适合的。 这个问题似乎是因为我不得不使用XHR-Polling(使用Heroku作为主机平台),所以我无法轻松访问Socket.io身份validation方法中的cookie信息。 在authFunction下面的代码中,“data.headers.cookie”是未定义的。 以一种迂回的方式(在Now.js代码中),这会在nowjs.on(“connect”,…)callback中留下“this.user.cookie”为空(但不是未定义的)。 这反过来让我无法抓住会议信息。 从阅读来看,似乎cookie只有在使用websocket时才可用。 没有cookie,我不知道哪个用户正在调用服务器,除了为它们生成的随机标识符。 任何人都可以build议如何处理这个? 在build立与Now.js服务器的连接后,是否需要手动从客户端发送cookie? var app = express(); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.engine('html', consolidate.swig); app.set('view engine', 'html'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser()); app.use(express.session({ secret: "secrethere" , store: sessionStore})); app.use(express.static(path.join(__dirname, 'public'))); app.use(app.router); }); app.configure('development', function(){ app.use(express.errorHandler({dumpExceptions: true, showStack: true})); }); //Map the routes var routes […]

使用节点服务器与NowJS发送JavaScript文件

这个问题应该简单回答任何有Node经验的人 – 不幸的是我是一个极端的新手。 我正在编写一个棋盘游戏的Web应用程序,它将使用服务器 – 客户端体系结构来向所有客户显示对棋盘进行的实时更改。 该应用程序使用Raphael来显示graphics。 我已经创build了一个成功发送HTML文件以响应任何请求的服务器,但是该板不显示 – 只有没有任何Javascript的原始HTML出现。 我认为这是因为我已经编程服务器总是以HTML文件作出回应,我不知道如何发送JavaScript文件(client.js,raphael.js)到客户端,以便页面可以正确加载。 相关代码如下。 现在,我只是想让浏览器绘制一个Raphael元素,这样我就可以看到客户端正确地获取了加载页面所需的Javascript文件。 在服务器端: var fs = require('fs'); var server = require('http').createServer(function(req, response){ fs.readFile('index.html', function(err, data) { response.writeHead(200, {'Content-Type':'text/html'}); response.write(data); response.end(); }); }); 在客户端: $(document).ready(function(){ var R = Raphael("container", 1000, 700); this.R.path("M0,0l1000,700").attr({"stroke-width": "5"}); }); 您可以假定HTML文件格式正确,并包含所有JS文件的引用 – 我已经有一段时间没有服务器 – 客户端体系结构的应用程序运行良好。 另外,我使用的是NowJS,所以包含这个框架的任何解决scheme都会受到欢迎。 谢谢你的帮助!

有可能捎带在now.js IOsockets上?

我使用的是NowJS,但是考虑到Socket.IO可能对于非常高频率的消息更有效(可能比nowjs函数调用的开销less)。 我想知道是否有可能“劫持”现在已经build立并复用的IO套接字,希望能够对这两者进行合理的比较。 我尝试了以下内容: // On the server user.socket.on("my_update", receiveUpdate); // On the client now.core.socketio.emit("my_update", { hello: "world" } ); 但服务器事件从未被触发。 我的问题:如何使用NowJS使用的io套接字? 或者我不能? 对于额外的点,使用socket.io emit()比使用NowJS代理的函数调用要快多less?

now.js:尝试启动server.js时,“对象没有方法”错误消息

我成功安装了node.js和now.js。 对于now.js,我是这么做的: npm install now -g npm install now (had to add this one. Without it, I get a "Cannot find now…" error message) 当我启动节点服务器并提供一个像这样的server.js文件: var httpServer = require('http'); httpServer.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('Node is ok'); res.end(); }).listen(8080); console.log('Server runs on http://xxxxx:8080/'); 一切安好。 现在,我试图添加到这个文件的基本用法now.js: var nowjs = require("now"); var everyone = nowjs.initialize(httpServer); […]

正确的方式来使用nowjs

这是目前我使用nowjs的方式,但这是错误的方式来使用它? 客户: $('#guestbook_form').validate({ rules: { message: { required: true, maxlength: 1000 } }, submitHandler: function(form) { now.sendGb($(form).serializeObject()); } }); now.pushMessage = function(message) { $('#guestbook_records').append(message); }; 服务器: everyone.now.sendGb = function(message) { client.query( 'INSERT INTO guestbook SET owner_id = ?, user_id = ?, message = ?', [message.id, message.user_id, sanitize(message.message).entityEncode().trim()] ); everyone.now.pushMessage(message.message); }; (当然,这个代码还有一些其他的问题,但只是一个例子) 我应该如何使用nowjs? 感谢您的帮助

NowJS当前会话

我正在使用express,everyauth和now.js创buildnode.js应用程序。 我有一个服务器端的now.js函数,我希望能够访问调用此函数的已validation用户的“用户”对象。 我没有访问“请求”或“会话”对象,我只有用户cookie和connect.sid 我的问题是,什么最好的方式来获取我正在寻找的会议信息? 当原始页面请求进入时,是否将这些详细信息存储在cookie中? 或者有没有办法从connect.sid获取会话对象? 谢谢

在Nodejs上的基准并发连接?

我正在玩nodejs,并希望得到一些关于如何使用诸如nowjs,socket.io等在nodejs中的websocket上的并发连接进行基准testing的指南。

调用couchdb函数外的variables?

我有很多麻烦得到couchdb的响应处理程序做任何有用的node.js和now.js。 我的目标是回复客户或小组,并发现某些信息,这些信息也是从客户那里发现的。 everyone.now.login = function(){ var username = this.now.lusername; var password = this.now.lpassword; var test; db.get(this.now.lusername, function (err, doc, test, username) { if (err) { console.log(+ username + " doesn't exist!"); } else { console.log('Found user!'); console.log(doc); test = 1; } }); console.log(test); } 我在这里使用testing作为例子。 我在db.get之外声明它,在里面分配一个值来反馈,但是当console.log在外面运行时,它没有值。 我只是没有得到它或者是错的? (我释放我可以使用doc。(无论什么值),但有一个特定的variables,我想传递给客户之外的这个调用)