Tag: html5

websocket服务器,存储数据

可以说,我做了一个websocket服务器聊天(node.js + socket.io)。 我将如何存储聊天消息,以便当“新”用户join聊天时,他将看到旧的聊天消息,而不仅仅是在聊天中他已经发送的聊天消息。 数据应该存储在服务器的variables中吗? 就像是: var io = require('socket.io').listen(80); var saveData = { }; io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 对于一个更复杂的应用程序,比如游戏,它会是一个可行的灵魂吗? 谢谢

多人游戏是否总是从每个客户请求的数据库中请求数据?

那么我不知道这个问题的标题是否合适,但我不知道如何把这个几句话。 我目前正在使用服务器端的NodeJS和Socket.io以及客户端的HTML5开发多人2D游戏。 这个游戏不需要保存玩家的进度,除非他们完成。 而且我必须确保关于球员的所有信息,比如得分和帮助总是有效的。 所以我决定把这个信息集中在服务器上,这样客户端就不会把分数发送给服务器,而是根据发送的信息计算服务器的分数并发送给所有客户端。 除此之外,我可以有不同的运行这个游戏的最低两名球员和最多4名球员运行。 起初,我决定实现这一点,服务器总是维护内存中的游戏会话数据,但现在我问自己,如果我不应该使用数据库来存储这些数据。 我正在使用数据库存储会话数据只有当他们完成,因为我没有使用未完成的会话数据。 但是,我应该在游戏中保持会话和玩家的数据吗? 我的问题在于,客户端与服务器的通信非常频繁,我必须先从数据库请求数据,进行必要的更改,将其存储回数据库,然后对每个客户端请求重复此过程。 也许这个答案很明显,但是我应该用这个方法吗? 这是我第一次开发游戏,所以我不知道事情是如何工作的。 我只知道我希望服务器速度很快。 我select维护内存中的所有内容,主要是因为所有关于多人游戏开发的例子和教程都没有提到数据库。 谢谢!

在处理HTML5时,是否需要在node.js中包含res.writeHead?

我已经开始学习HTML5 / CSS3 / JavaScript / Node.js,并且没有使用HTML4的经验,更不用说Web应用程序了。 所以这可能是一个愚蠢的问题,但是无论如何,我在网上寻找答案时看不到一个答案,因为我所读的所有例子,包括networking和书籍,都被认为是用HTML4编写的,现在在这里。 在Node.js中,当您向客户端发送响应头时,您将编写以下示例代码: var http = require('http'); http.createServer(function(req, res){ res.writeHead(200, {'Content-Type':'text/html'}); res.write(some_data); res.end(); }); 但是,在HTML5中,你不需要写一个头{'Content-Type':'text/html'} ,对吗? 那么我可以在我的节点应用程序文件中删除一行res.writeHead吗? 我知道一些浏览器仍然不支持HTML5,但是如果可行的话,我想让我的代码只适用于HTML5 / CSS3。 此外,当我完成创build一个Web应用程序并发布它时,我应该去哪个path,当应付浏览器仍然不支持HTML5 / CSS3(比如,旧的IE)。 1)即使有些内容崩溃,正看上去仍然出版 2)从安全angular度完全阻止使用浏览器的用户,并提示他们使用另一个浏览器,如果可行的话(我不知道,但我怀疑我可以访问客户端的浏览器信息并相应地处理使用JavaScript …对不对?) 我不打算让我的代码适用于所有的浏览器,因为我想把它作为一种爱好发布,并尽可能花费尽可能less的时间用HTML5 / CSS3构build一个漂亮的网站。 谢谢。

node.js WebSocket服务器

目前我尝试为我们的数据库周围的新活动创build一个推送服务器实例。 当然,你会发现很多关于这个话题的信息。 我正在使用: http : //static.brandedcode.com/nws-docs/#s6-p1 通过以下客户端实现: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script src="http://cdn.socket.io/stable/socket.io.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> <title></title> </head> <body> <script type="text/javascript"> (function() { var webSocket = new io.Socket('ws//test', { port: 8080 }); webSocket.connect(); webSocket.on('connect',function() { console.log('Client has connected to the server!'); }); webSocket.on('message',function(data) { console.log('Received a message from the server!',data); }); […]

使用nodeJS的跨浏览器canvas没有find函数的签名

我试图在页面上创build一个canvas,每当用户在上面画一些东西时就会自动更新。 但是,看起来好像下面的一段代码(来自index.html)导致错误 socket.on("drawn_complete",function(data){ ctx.putImageData(data.image,0,0); console.log("Everthing worked technically"); }); 这是在我的控制台输出的错误: Uncaught TypeError: Failed to execute 'putImageData' on 'CanvasRenderingContext2D': No function was found that matched the signature provided 我的data.image是从以下代码返回的内容: ctx.getImageData(0,0,200,100); // ctx is canvas.getContext("2d") 这是我的canvas在我的HTML: <canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"> </canvas> 这里是完整的节点JS: var http = require("http") var server = http.createServer(handler).listen(1337); console.log("Server created at 127.0.0.1:1337"); var […]

backbone.js的基本目的和好处是什么?

我听到很多消息说,使用html5和node.js时, backbone.js将非常有用。 我已经阅读了文档,但仍然无法获得backbone.js的基本目的。 有人可以简单地向我解释一下。 另外如果你可以指导我很好的教程。 谢谢 编辑:看到这个问题backbone.js的目的是什么?

nodejs websocket检测到断开连接的套接字

我有一个nodejs websocket服务器,我有以下问题。 当我的客户端连接到服务器并正常终止时,在这些套接字上调用onclose方法,并对封闭的套接字执行清理操作。 当客户端由于networking而断开连接时,不会调用onclose方法。 是否有任何超时设置如此onclose超时后自动调用? 我正在使用ws包在nodejs中的websocket服务器

来自JavaScript的PostgreSQL套接字(HTML5)

我正在寻找直接连接的选项 – 无需Web服务器或中间件 – 从Web浏览器客户端使用JavaScript连接到PostgreSQL服务器。 在github上,我发现了三个项目: node_postgres 节点的Postgres Postgres的-JS 他们似乎都早,但至less有点积极的发展。 他们都做大致相同的事情吗? 他们甚至在做什么? 有没有人有任何经验,可以推荐一个比其他人?

重新加载angular度的应用程序后没有index.html

我有一个像下面这样的基本设置的angular.js应用程序:我的index.html呈现像Top / Sidebar这样的静态内容。 里面我有<div ng-view></div>来显示部分html文件,例如我的home.html login到我的应用程序后, index.html与它的Controller MainCtrl加载,以及我的home.html与相应的HomeCtrl 。 所以一切都应该如此。 我实施了一个修复程序(以便重新加载不会“忘记”用户,我不会注销 – 我基于http://www.sitepoint.com/implementing-authentication-angular-applications/示例)我试过重新加载我的网页。 但现在只有我的home.html加载。 注意:我在下面编辑了我的发现 这是有道理的,这是我的app.js的一部分: $routeProvider.when('/', { templateUrl: 'views/home.html', controller: 'HomeCtrl', resolve: { auth: function ($q, authenticationSvc) { var userInfo = authenticationSvc.getUserInfo(); if (userInfo) { return $q.when(userInfo); } else { return $q.reject({ authenticated: false }); } } } }) .when('/login', { templateUrl: 'views/login.html', controller: […]

如何将canvas状态保存到数据库?

所以我用node.js,socket.io和html5canvas构build了这个实时绘图应用程序。 跟踪并广播鼠标移动的每个像素(在其他计算机上显示绘图input)。 我知道可以保存canvas的图像,但是这个canvas非常大(10000×10000 +像素)。 现在,当页面刷新时,所有的绘图都消失了(因为它只是通过套接字发送,没有任何保存)。 我想保存所有的canvas数据到一个数据库,然后以某种方式重写页面时再次加载,但它只是太多了。 你怎么去做这个?