我应该如何在Django应用中实现反向AJAX?
我在用Django构建聊天应用时,应该怎么实现反向AJAX呢?我看过Django-Orbited,根据我的理解,它是在HTTP服务器前面放了一个comet服务器。如果我只是运行Django的开发服务器,这样做似乎没问题,但当我开始用mod_wsgi运行应用时,这样做是怎么工作的呢?让orbited服务器处理每个请求,这样的方式能扩展吗?这样做是对的吗?
我还看过另一种方法(长轮询),感觉也可以用,虽然我不太确定具体需要什么。客户端会请求一个页面,这个页面会在自己的线程中运行,以免阻塞其他应用吗?它会阻塞吗?客户端请求的脚本是不是得不停地去获取信息?
这几种方法中,哪种更合适?哪种更便携、可扩展、合理等等?还有没有其他好的方法(除了客户端轮询消息)我可能忽略了?
3 个回答
0
Nginx推送流模块为服务器和客户端提供了一个简单的HTTP接口。
Nginx HTTP推送模块也类似,但似乎已经不再维护了。
1
你有没有看过 Tornado 呢?
用 WSGI 来做 comet 或者长轮询的应用其实不是个好主意,因为它不支持非阻塞请求。
1
你觉得使用这个很棒的 nginx推送模块怎么样?