Articles of 彗星

彗星服务器和networking延迟时间

对于一个社交网站,我们使用基于node.js的慧星服务器作为即时通讯工具,一切正常,我们只有一个问题,如何解决延迟问题到澳大利亚和新西兰,我们有310毫秒到440毫秒的RRT。 一个想法是拥有本地服务器,但是在这种情况下,他们必须连接到澳大利亚用户能够与英国用户通信的主服务器。 这个彗星连接也会有较高的延迟,但本地用户可以快速聊天,这将是大多数情况下。 有没有人有更好的主意,然后使用本地彗星服务器?

PHP – 长时间轮询通知(PHP标志或其他方式?)

我很快就开始一个新的项目,而且即时考虑长时间轮询通知用户,他们有一个新的私人信息/通知,他们必须检查,真的类似于Facebook用来通知你,有人发布了一些关于你/喜欢你的照片 从我看过的文字来看,cometd似乎是一个很好的select。 然后,其他方式开始出现,如:Socket.io,和node.js .. 现在,我的问题是, 你认为哪一个是这种情况的最佳select,为什么? 我需要做的是以下几点: 用户1login到他们的帐户 用户2向用户1发送存储在数据库中的消息,并生成一个标志(如果可能的话?!) 负责用户1的PHP脚本应该拿起标志,并将通知推送给用户1 我知道如何照顾JavaScript方面,但我从来没有做过类似于长轮询的任何事情。 我使用jQuery作为JavaScript库和PHP的服务器端。 那么build议和任何好的资源来做到这一点?

Node.js如何检测浏览器端已经结束了一个HTTP会话?

我试图用Node.js来实现Comet(XHR Streaming)。 由于XHR Streaming使客户端XHR.responseText不断增长,客户端需要closures当前的XHR并重新启动XHR Streaming。 在服务器端,对于每个XHRstream,HTTP.ServerResponse对象应保持到HTTP会话结束。 问题是:Node.js如何检测浏览器端已经结束了一个HTTP会话? 我想,理想情况下,http.ServerResponse.write有一个callback参数。 因此,写入一个closures的HTTP会话会触发callback,并让我们知道它被中止。 但是,没有这样的callback参数。

我该如何避免重载JavaScript CallStack?

下面的javascript完成以下(这是一个node.js COMET应用程序): 向服务器发出请求,并等待服务器返回一些内容。 一旦请求返回,数据被处理并且在成功事件的callback函数内立即发出另一个请求。 如果发生超时(服务器在时间范围内没有任何内容可以返回),那么在错误事件的callback函数中会发出另一个请求。 我的担心(我认为是有效的)是请求被不断地添加到调用堆栈,就像一个永无止境的recursion函数。 一段时间后,它导致浏览器最终崩溃,变得没有反应(至less我认为这是原因)。 我怎样才能做到这一点,并避免这个问题? function GetData(){ $.ajax({ url: "admin.html", type: "POST", dataType: "json", contentType: 'text/json', data: JSON.stringify({ cmd: "getData" }), timeout: (60 * 1000), success: function(data, textStatus, jqXHR){ UpdateScreen(data); GetData(); }, error: function(jqXHR, textStatus, errorThrown){ if(textStatus == "timeout"){ GetData(); } } }); }

Facebook上的多人游戏

我正在做一个多人游戏,这将是一个Facebook应用程序。 做了一些研究,我发现对于服务器端推送,我需要在Node.js或Python中最好实现的彗星。 但Facebook的API只能用JavaScript和PHP编写。 我知道有第三方的API,但我不想和他们一起去。 我可以在JavaScript中做所有的Facebook代码客户端,但是这会有点困难,特别是在PHP中如此容易。 据我所知,我的select总结如下 让服务器端推送并坚持周期性的Ajax请求+ PHP。 坚持Node.js并离开PHP,并在JavaScript中做所有的FB编程(如果这甚至可能,我认为是这样)。 使用服务器端推动Apache(我听说是不是一个好的方式去)。 使用像Java这样的技术来支持一些彗星和FB API。 (我不知道Pyhton)。 HTML5也引入了服务器端的更新,也许它可以帮助。 (虽然没有多less考虑) 哪个是最好的方法去? 我对Java,PHP和JavaScript有很好的经验。

Etherpad的时间线function如何工作?

我想了解Etherpad的时间线function如何工作。 如果你不知道这里的etherpad软件是它的实现 – http://piratepad.net/ 做一些编辑,写一些东西,大胆地使用编辑器,然后在右上angular你会看到时间表。 点击并播放它。 我可以看到像这样的JSON响应 – 但任何人都可以把它分解成一些可理解的东西。 这是从它的Node.js端口的一段代码 – https://github.com/Pita/etherpad-lite/blob/master/src/node/handler/TimesliderMessageHandler.js#L359 我非常有兴趣了解JSON响应及其工作原理。 另外什么数据库是最适合这种应用程序(etherpad,谷歌文档等)。 Nosql(如mongodb)或sql(如mysql)。

Node.js:基于事件的彗星周期性的Ajax请求?

据我所知,node.js的核心特性是(也):基于事件的结构和非常便宜的“线程”睡眠。 所以,不要创build周期性的ajax请求,而是要保存像“用户A有新消息”这样的事件,让用户的A连接线程hibernate,直到事件发生,这可能是个好主意(也可能更便宜)。 您如何看待 – 服务器(RAM,CPU)使用哪个更便宜?

跨浏览器COMET实现node.js

我是一个node.js启动器。 我想要交付的产品看起来像是一次有1000多名参与者在线聊天。 我正在寻找一个跨浏览器演示(IE7,Android支持)开始。 我担心的是客户端跨浏览器部分。 我梦想一个使用web套接字的支持浏览器和iframe的库不被支持,经过很好的testing,并且封装了COMET的实现。 我在网上find了一些解决scheme,但是我对你的build议很生气。 谢谢

任何人试图与主机与PHP(nodejs)

我试图使用juggernaut(nodejs插件)实时发布/抄写模块Juggernaut的客户端通常是Ruby而不是php。 但是,我的项目的主要语言是PHP。 所以我必须做一些PHP的东西。 客户订阅是好的,这很容易。 但是,问题是发布 ,写信息。 经过长时间的search,我发现Juggernaut不允许客户直接发布。 所以,我做了一个结论。 发布机制: 客户端的Javascript – > PHP(Phpredis) – > Juggernaut DB(Redis) – > Juggernaut 然后Juggernaut发布给每个用户 。 但是,这4步太多了-_-; 我的想法是对还是错? 我无法从Juggernaut github中find任何提示。 任何意见欢迎〜

servlet 3.0和node.js的彗星notifcations

我正在开发一个web应用程序,实时通知用户彗星风格。 我目前的解决scheme使用Servlet 3.0。 总的想法是 将请求的AsyncContext放入应用程序范围Map中, 一个后台线程等待队列上的通知 如果有通知,则将其推送到Map中相应的AsyncContext。 我正在使用NIO连接器的Tomcat 7.0。 一般来说,我使用的方法与此非常相似: http : //www.javaworld.com/javaworld/jw-02-2009/jw-02-servlet3.html?page=3 我还没有机会去探索node.js。 我的大部分用例(很有可能)都不会从node.js中受益,但也许这个彗星通知会。 据我所知,这两个解决scheme都不会有一个线程要求,因此这两个系统应该扩展。 我的问题是,使用Servlet 3.0asynchronous模式或Node.js来扩展彗星的一般优点和缺点是什么?