作为Node.js的新手,我正在尝试更改Nick Anastasov的Smartphone Remote Control with Node.js and Socket.io示例,以便不需要密码。
在原始源代码中, app.js 文件在 kittens 已输入网络表单和脚本后发送{ access : 'granted' }
.js 启动其主要任务,例如解开网页:
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")
,但这当然不起作用:网页保持模糊,因为没有{{1已收到事件(access
和granted
)。
我的问题是:我应该如何更改上面的代码,以便在建立连接后运行?
我应该使用denied
还是socket.on('connect')
还是同样的问题(因为没有发送字符串socket.on('connection')
)?
更新
正如Brad所建议的那样(谢谢!)我已经更改了 script.js 中的字符串" access"到"连接",但网页仍然模糊 - 这是完整的源代码:
connect
以下是完整的 app.js 源代码:
$(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);
});
});
});