我正在做一个小型多人游戏.我想介绍身份验证.我正在使用Node.js和Socket.io.
当用户到达主页面时 - 我希望他们加入游戏,无论他们是否登录 - 但他们将无法在其中执行任何操作(仅限于观看).
那我怎么可以在已打开的套接字上验证用户呢?
如果他们离开网站并回来,我可以保持身份验证吗?你可以通过网络套接字传递cookie吗?
编辑
进一步提问我.我有一个可能的想法是提供websocket连接,然后当他们尝试登录时,它将用户名和密码作为消息传递给websocket.
client.on('onLogin', loginfunction);
Run Code Online (Sandbox Code Playgroud)
然后我可以获取用户名和密码,检查数据库,然后获取套接字的会话ID并将其传递到某个地方,说该会话已经过该用户的身份验证.
这样安全吗?我还能在套接字上实现一个cookie,以便它们可以回来吗?在socket.io中是否有任何方法表明套接字现在已经过身份验证而不是手动检查收到的每条消息?
干杯
使用Upstart启动Node.js,当尝试访问Node.js中的文件时,如果不使用完整路径,则无法访问它们.我需要它来使用工作目录.
start on startup
stop on shutdown
script
echo $$ > /var/run/mynodeapp.pid
exec sudo -u mynodeapp node server.js >> /var/log/mynodeapp.sys.log 2>&1
end script
pre-start script
echo "Starting" >> /var/log/mynodeapp.sys.log
end script
pre-stop script
rm /var/run/mynodeapp.pid
echo "Stopping" >> /var/log/mynodeapp.sys.log
end script
Run Code Online (Sandbox Code Playgroud) 我正在努力解决这个问题,似乎无法找到更多的参考资料.
我使用的是Google编写的requestAnimFrame:
requestAnimFrame = (function() {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(/* function FrameRequestCallback */ callback, /* DOMElement Element */ element) {
window.setTimeout(callback, 1000/60);
};
})();
Run Code Online (Sandbox Code Playgroud)
我有一个功能"init"来设置我的游戏.然后调用update,这是调用渲染绘制到画布的游戏循环.如果忽略requestAnimFrame - 每个单独的部分都可以正常工作.一旦我调用requestAnimFrame,我或者得到"太多的递归"错误或者FF只是崩溃.
我在update()中的代码如下:
game.update = function()
{
stats.update();
fps.innerHTML = stats.getFPS();
// Render objects
game.render();
// Continue game loop
requestAnimFrame(game.update());
}
Run Code Online (Sandbox Code Playgroud)
stats.update只是更新FPS计数器.所以你可以看到,这个功能并没有做很多.我的game.render函数只是在画布上绘制了一大堆瓷砖,工作正常.
有什么建议?
谢谢!
克里斯
我正在寻找在 Ubuntu 中设置 Node.js 应用程序的最佳方式。我已经设置了 /var/node/ 来存储各种 Node 应用程序,就像 /var/www/ 一样。
我正在努力实现,但似乎失败了:
NodeAdmins(组)对 /var/node/ 具有读写访问权限。
NodeUser(用户)对 /var/node/ 具有只读访问权限。
NodeUser 是运行 Node 应用程序的用户帐户。
这样,FTP 用户可以更改 /var/node/ 中的任何文件,而 NodeUser 运行的 Node 应用程序可以访问所有文件。
我的问题:
1)这是正确/安全的方式吗?
2) 如何允许多个组对文件夹拥有不同的权限?我使用 chown 将 NodeUser 设置为组的所有者。我不相信这是正确的方法。
我有一个简单的 html 表单,我在一个字段上使用“谷歌自动填充”,在两个字段上自动填充数据。
问题是浏览器地址自动填充与 google autofill 重叠。
如何在每个浏览器上的字段上禁用浏览器自动填充?
随意分享对此的想法。谢谢你。
我正在尝试利用Node.js中的TCP套接字与Lua程序进行通信.我正试图解决两个问题.首先缓冲.
缓冲区据我所知,当从套接字向您的代码提供数据时,它将是迄今为止收到的任何数据(流而不是数据包).因此,当您阅读收到的数据时,可能会从发送的数据中删除.
即收到的数据{学校:["Long
vs发送的数据{学校:[{"Longwood","Hillbrow"}]}
解决这个问题的方法是将您的数据放入"缓冲区"并通过您用来显示该信息结尾的任何方法将其拆分.通常看来是新线.
我的问题在这里:
最后我似乎误解了数据方面.是否需要将发送和接收的所有数据转换为二进制数据并返回?我希望只来回发送JSON数据.我觉得我的困惑在于谎言.例如:
var myQuestion = "Is this acceptable and will I encounter any issues?
socket.write(myQuestion);
Run Code Online (Sandbox Code Playgroud)
非常感谢你的时间.