连接build立后如何运行JavaScript代码?

作为一个Node.js新手我试图改变与 Nick Anastasov的Node.js和Socket.io示例的智能手机远程控制,以便不需要密码。

在原始源代码中, app.js文件在input一个web表单并且script.js开始它的主要任务之后发送{ access : 'granted' } ,例如取消网页:

 socket.on('access', function(data) { if (data.access === "granted") { // XXX Tried removing this line blurredElements.removeClass('blurred'); form.hide(); $(window).on('hashchange', function() { // .... }); socket.on('navigate', function(data) { // .... }); } }); 

我已经改变了app.js,所以它根本不会发出access

然后,我尝试从script.js中删除只有行if (data.access === "granted") ,但这当然没有奏效:网页保持模糊,因为没有接收到事件了(不granted也不denied )。

我的问题是:我应该如何改变上面的代码,以便连接build立后运行?

我应该使用socket.on('connect')socket.on('connection')或是同样的问题(因为没有stringconnect正在发送)?

更新:

正如Brad所build议的(谢谢!)我已经将script.js中的string从“access”改为“connection”,但是网页保持模糊 – 这里是完整的源代码:

 $(function() { Reveal.initialize({ history: true }); var socket = io(); var presentation = $('.reveal'); socket.on('connection', function(data){ // XXX changed this presentation.removeClass('blurred'); // XXX not called var ignore = false; $(window).on('hashchange', function(){ if (ignore){ return; } var hash = window.location.hash; socket.emit('slide-changed', { hash: hash }); }); socket.on('navigate', function(data){ window.location.hash = data.hash; ignore = true; setInterval(function () { ignore = false; },100); }); }); }); 

这里是完整的app.js源代码:

 var express = require('express'), app = express(); var port = process.env.PORT || 8080; var io = require('socket.io').listen(app.listen(port)); app.use(express.static(__dirname + '/public')); var presentation = io.on('connection', function (socket) { socket.on('slide-changed', function(data){ presentation.emit('navigate', { hash: data.hash }); }); }); 

是的,你想要io.on('connection') 。 每当新客户端连接时,都会触发此事件。

http://socket.io/docs/