Tag: 实时

实时更新到NodeJS(MVC,Express),Mysql和Socket.io应用程序

我正在尝试使用Express框架和MySQL作为我的后端数据存储,使用带有MVC布局的NodeJS创build实时Web应用程序。 我遇到的问题是,我找不到任何好的示例或教程,关于如何使用Socket.io (或任何其他Web套接字平台从数据库实时传递信息到Web应用程序。问题是在特定的表上将任何新的MySQL更新传递给特定的表,以便如果通过第二个客户端连接将新的信息添加到数据库中,只要添加了信息,它就会在第一个客户端连接上更新。 有没有人有任何想法如何获得socket.io(或另一个websocket连接协议)和mysql一起工作来实现这一目标? 任何代码示例或指向我的一些网站有这个主题的文档,将不胜感激。 谢谢!

Socket.io私人消息,同时有多个用户在线

因此,我正在构build一个聊天应用程序,并需要帮助了解如何发送私人消息。 这是我的代码,“发送消息”。 users = {} socket.on('send message', function(data, callback){ var msg = data.trim(); console.log(users); console.log('after trimming message is: ' + msg); var name = req.params.posteruname;//reciever var msg = msg; if(name in users){ var message = new Chat({ msg : msg, sender : req.user.username, reciever : name }).save(function(err, savedMessage){ if(err) { users[name].emit('whisper', {msg: "Error, some tried […]

游戏中的大滞后node.js和socket.io(实时)

我有一个与socket.io很大的问题,这使得我的实时游戏无法播放。 我希望我的node.js服务器每20ms向每个连接的客户端发送数据(每个套接字) 但是我注意到客户端每20ms收不到一次,每100-200ms多收一次。 这使得游戏完全无法玩(非常大的滞后) 本地它工作得很好。 你能帮我吗 ? 这是我的函数发送数据(服务器端)的一段代码: function sendData() { playersList.forEach( (player) => { let data = []; // code which add data to "data" variable socketsList[player.id].emit('refreshGame', JSON.stringify(data)); }); setTimeout(sendData, 20); } sendData();

如何处理Node.js中的“读取ETIMEDOUT”?

我有一个pub / sub模型,使用Node.js将数据从一个客户端传输到另一个客户端。 此外,服务器还会logging收到的所有内容并发送给新客户端。 但是,一些数据在传输时被破坏,并且出现如下错误: Error with socket! { [Error: write EPIPE] code: 'EPIPE', errno: 'EPIPE', syscall: 'write' } Error with socket! { [Error: read ETIMEDOUT] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'read' } 我不知道如何正确处理这些错误。 看起来客户端已经closures了。 由于服务器只是像服务器这样的代理服务器,所以并不知道数据是什么意思。 遇到这些错误之前,我不知道如何validation每个数据包。 这是我的代码: // server is an object inheriting from net.Server server.on('listening', function() { var port = server.address().port; }).on('connection', function(cli) […]

用于服务器操作的Node.js客户端进度指示器

我的node.js服务器将执行某些操作上传文件,我想反映在近实时返回到客户端的进度。 此操作大约需要30秒 – 1分钟才能完成。 理想情况下,file upload后,客户端将能够观察文件上服务器操作的进度。 我可以执行定期民意调查,长时间民意测验,或通过networking连接到服务器,但所有这些似乎需要相当复杂的设置为30秒-1分钟的进度指标。 有更好的方法吗?

需要build议转换我的应用程序,以便实时更新

我有一个Web应用程序,它只是简单地将我们的想法展示给less数人。 它需要更新的信息,所以我用jQuery和PHP使用一个快速和肮脏的短轮询技术把我们的演示放在一起。 性能并不重要,因为在任何时候只有几个人访问这个演示。 该应用程序基本上是一个实时队列,从一个Android应用程序提供项目。 现在我有android发送POST数据到一个API添加一个logging到数据库。 然后,我使用短轮询,以保持队列更新的事物(不理想,我知道)。 现在演示已经结束,并且有很大的兴趣,我的任务是这个应用程序必须能够扩展到我估计的每天大约2500个客户端的连接(500个商店w /多达5个浏览器所有的时间连接),在未来一年左右。 为了使这成为现实,我一直在阅读实现这个应用程序的各种方式,以及使用像Comet这样的长轮询技术。 现在我的脑袋里有了各种各样的select。 我曾经看过像Pusher这样的服务,但是我们真的想尽量减less每月的成本,所以这只是最后的select。 Node.js似乎是stream行的选项,但是这将需要我重写我的整个应用程序,不是吗? 即使我使用像Node.js这样的东西,我也不知道如何处理来自android应用程序的传入POST数据,并让它更新数据库并将其发送到客户端浏览器。 实时队列只是Web应用程序的一部分,其余部分可以在不需要任何实时function的情况下完成。 如果我使用node.js,我可以在node.js中只写队列,并使用更传统的LAMP堆栈运行网站的其余部分? 我确实有控制在商店中使用哪些浏览器的优势(Chrome),所以我并不需要担心传统的浏览器支持。 真的任何意见,可以引导我在正确的方向将不胜感激。 似乎有很多的select,但我不知道哪一个是最适合我的情况。

使用Hapi,MongoDb,NodeJS和AngularJS创build实时项目

我正在使用Hapi,MongoDb,NodeJS和Angular创build我的第一个Web应用程序。 我已经可以从我的应用程序获取并保存一些数据。 现在每次我需要刷新浏览器中的数据时,我必须重新启动服务器。 由于数据只能在服务器启动时使用以下函数获取: var getUsers = function(db, callback) { db.collection("users", function(err, collection) { if (err) return callback(err, "error getting collection"); collection.find({}).toArray(function(err, users) { if (err) return callback(err, "error getting find()"); console.log("returning users list: "); Common.setUsers(users); //console.log(Common.getUsers()); }); }); }; 用户可以通过Common.getUsers()获取 现在如果我想创build一个列表来显示我 – 实时 – 哪些用户注册我的应用程序? 所以不需要重新启动服务器。 我怎样才能做到这一点? 我已经做了一些search,发现了RethinkDb,它有更换 。 (我希望我早点发现)。 MongoDb没有像Rethink实现它的方式进行更换。 有没有一种方法可以自己创build这些换卡? 或者是有另一个工具,可以实现这个我与MongoDb的工作?

使用node.js和socket.io向用户显示实时数据

我正在寻找优化/升级我们的Web应用程序从传统的PHP / MySQL,到更高效的技术。 我一直在研究node.js,socket.io和CouchDB,看起来很有前途,但是我正在寻求build议,并且在为我们想要的select最佳技术方面提供一些帮助。 所以,要概述目前的工作 我们有捕获数据并将其发送到FTP服务器(通过.txt文件)的设备。 PHP脚本每5分钟运行一次,扫描设备发送的.txt文件的FTP。 这些文件的内容被插入到MySQL数据库中,并且.txt文件被删除。 另一个每15分钟运行一次的PHP脚本将整理来自数据库的数据(例如,最近一小时的总和值)并生成一个XML文档,这些文档由Flash拨号读取。 很明显,这里有很多问题,远非实时解决scheme,这是我们的目标。 我们想要的解决scheme是,不知何故,它可以检测何时txtfile upload到FTP,然后只处理数据(而不是有一个设置的时间间隔运行)。 数据仍然需要添加到数据库中,一旦添加到数据库中,数据就会被前端读取。 闪光将被完全删除,因为它有点… ick … 有了像node.js和Web Sockets(socket.io)这样令人兴奋的新技术,我相信我们可以大大改善这个过程! 我知道Ajax能够做这样的事情,但是与Web套接字相比,它听起来有相当高的开销。 我也对数据库如何处理node.js有点朦胧,更不用说我们之后的最佳select了… 谢谢!

硬件和Web组件之间的实时通信协议是什么?

我不完全确定如何在标题中提出我的问题。 我想build立一个系统,作为我家的一种信息仪表盘。 它将包含许多硬件和软件组件,最终将形成一个简单,干净的网站,可以实时显示许多模拟传感器,如温度,风速和方向等。 我已经清楚了自己将要为硬件做什么,以及如何显示信息。 我的问题与硬件和Web服务器之间的通信有关。 我希望硬件以相当快的速度发送消息,所以我不认为HTTP POST就足够了。 我也不是非常关心接收100%的信息,但接收尽可能多的肯定是一个加号。 数据将来自硬件,填充某种数据库(可能是Redis)。 到目前为止,我已经研究了一些东西,但是我不确定我是否正朝着正确的方向前进。 我已经find了面向消息的中间件,比如RabbitMQ,但是我不确信我需要开销。 我也研究过Redis Pub / Sub这个看起来更合适的解决scheme,因为我希望Web应用程序绘制出最后5分钟的数据,但即使如此,我也不确定。 我可以将UDP数据包发送到定制的侦听器吗? 我非常确定硬件将是两个阶段(一个uC喂小embedded式linux机器),所以你甚至可以把这个比喻成桌面软件,尽可能快地向web服务器发送消息。 我冒险进入一个我完全不了解的领域,所以任何指导都非常感谢。

使用node.js在PHP应用程序中显示消息的实时通知

我有一个PHP应用程序,人们发布不同的状态消息。 我想实现它的实时通知。 也就是说,如果用户发布内容,则立即访问该网站的其他用户将在他们的屏幕上获得有关新post的提示。 我听说你可以使用node.js来实现它。 但我不知道如何做到这一点。 任何帮助将不胜感激。