我目前正在Django开发一个网站,我想为它实现某种准实时更新系统。
由于这个网站是为移动设备设计的,我想知道定期轮询服务器的更改(比如说,每5秒)和使用某种Websocket实现之间的性能比较是什么http://codysoyland.com/2011/feb/6/evented-django-part-one-socketio-and-gevent/.
就电池寿命而言,这种差异可以忽略不计吗?就代码而言,AJAX实现似乎也会更简单。
答案是"取决于"。如果你的目标是一个已知良好websockets实现的移动设备,那么就这么做吧。目前,这可能是唯一一款带有iOS4.2或更高版本的iPhone/iPad,可能有很好的实现。
对于其他人来说,你无论如何都要做民意调查,所以我想说走这条路。
我已经做了几个接近实时的服务(<10s延迟),使用轮询可以很好地工作。我不会把它用作聊天引擎,但对大多数其他东西来说,它都很好。
电池方面,我认为两者都不会有太大区别。不过,我会使用socket.io,因为你只使用socket.I奥,它会尝试使用websocket,如果浏览器不支持它们,就会返回到ajax请求