我目前正在使用Apache(mod_wsgi)上的Django来开发我的应用程序。我最喜欢的事情之一就是使用JavaScript的setInterval()
函数和伪AJAX来“伪造”异步请求,以便从数据库中检索新数据。例如:
// 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
}
据我所知,这对我的需求来说非常好。但是,随着我的应用程序越来越大,越来越复杂,无论我多么努力减少传输数据,这对我的服务器和客户来说都会变得太麻烦。此外,我无法解决在今天的世界中我仍在“伪造”这个问题的事情:)所以,我想找到一些具有推送功能的“真正”解决方案,用于我当前和未来的项目。
我确实试图谷歌我的问题,我发现了许多有趣的东西(Tornado,Nginx,Node.js,Twisted等),但大多数教程/文章/博客至少有6个月的历史,我相信很多事情发生了变化。到目前为止,我已经尝试测试Tornado并且它是成功的测试,但是我在生产服务器上设置它时遇到了一些问题。我也尝试过Node.js这非常简单,因为我知道JavaScript非常好,但话又说回来,我不确定它是否是一个很好的解决方案。
我的问题是 - 根据这些条件,在我当前和未来的应用程序中实现什么是最好的(服务器,平台,框架等等):
感谢您的想法以及对此的任何帮助(非常欢迎链接到一些好的,最近更新的读数:)
答案 0 :(得分:1)
你应该看看django-socketio项目,这是一个Django应用程序,它提供了通过Socket.IO使用带有Django的websockets所需的功能。