使用长轮询优化 LOPhone

LOPhone 是一个基于 Web UI 的 ModemManager 客户端例程,可在网页中控制 Modem 拨打和接听电话。在原来的实现中是使用短轮询的方式同步服务器端和客户端的状态,因为是使用定时器触发请求发送,所以状态同步实时性差,而且对服务器端的资源浪费严重。

短轮询
短轮询是指客户端使用 AJAX 定时向服务器端发起 HTTP 请求,服务器端不管是否存在状态更新都响应客户端的请求,一次请求完成后即可关闭连接。短轮询的优点是实现简单;缺点是状态同步实时性差、浪费服务器端资源和网络流量。

长轮询
长轮询是指客户端使用 AJAX 向服务器端发起异步 HTTP 请求,该请求可包含客户端当前的状态描述,服务器端收到请求后与暂存的最新状态进行比较,如果需要更新则立即返回响应,否则阻塞等待直接状态更新并返回最新状态。

LOPhone
ModemManager with CDMA Phone Interface: http://gitcafe.com/heiher/ModemManager
LOPhone Web UI: http://gitcafe.com/heiher/lophone
LOPhone HevSCGIServer Module: http://gitcafe.com/heiher/hev-scgi-server-lophone

Over!

Leave a Reply

Your email address will not be published. Required fields are marked *