我目前使用Django在Apache(mod_wsgi)上开发我的应用程序。我最喜欢的事情之一是用JavaScript的setInterval()
函数和AJAX从数据库中检索新数据来“伪造”异步请求。例如:为Django项目选择一个好的异步解决方案
// javascript
function someFunction() {
// do some stuff
setInterval(function() { fetchNewStuff() }, 1000); // run fetchNewStuff() every second
}
function fetchNewStuff() {
Dajaxice.main.fetch_new_stuff(fetch_new_stuff_callback, {'id':$(this).attr('user_id')});
}
function fetch_new_stuff_callback(data){
// append new stuff to my table, list or whatever in HTML page
}
据我所知,这对我的需求来说非常合适。但是,随着我的应用程序越来越大,越来越复杂,无论我多么努力地将传输的数据减到最少,这对我的服务器和客户来说都最终会变得非常麻烦。另外,我无法解决这个问题,在当今世界,我仍然在'伪装'这个:)所以,我想找一些'真正'的解决方案来推动我当前和未来的项目。
我曾尝试谷歌我的问题,我发现了很多有趣的东西(龙卷风,Nginx,Node.js,扭曲等),但大多数教程/文章/博客至少6个月大,我相信很多事情在那个时候改变了。到目前为止,我试图测试Tornado,并且它是成功的测试,但是我在生产服务器上设置它时遇到了一些问题。我也尝试了Node.js,它非常简单,因为我知道JavaScript非常好,但是再次,我不确定它是否是一个好的解决方案。
我这里的问题是 - 什么是最好的事情(服务器,平台,框架,等等)在我的当前和未来的应用程序依赖于这个条件实现:
- 使用方便(如Node.js的可以装在这里)
- 消除第三方的东西尽可能(有些乱了现成的解决方案,如Django的+ WebSockets的,这就是它[这真的只是个愚蠢的例子] )
- 与Django的使用良好的文档(这将是完美的有一些真实事例与我的新技术和Django的,因为我对Web服务器非常的n00b和相关的东西)
- 具有良好的视角和未来 (我真的很想学习一些我会用很多东西,而且我不需要经常重新配置)
谢谢你对我的想法和任何帮助(链接一些很好的,最近更新的读数不止是欢迎:)
结帐这里:http://maxburstein.com/blog/realtime-django-using-nodejs-and-socketio/ – luistm
非常感谢,这看起来不错,我肯定会稍后检查一下:) – errata