如何在服务器端发生更改时将数据发送到客户端浏览器

时间:2012-09-30 15:40:16

标签: ajax codeigniter server-side crm

我有一个在CodeIgniter 2.1中开发的基于Intranet的CRM应用程序,其中应用程序在本地Apache服务器上运行,大约20个客户端通过LAN访问它。这将连接到呼叫中心设置,其中呼叫中心应用程序(在单独的服务器上运行)将执行带有呼叫者号码的HTTP帖子以及呼叫到达我的Codeigniter应用程序的URL的代理的终端号码。我正在使用此数据填充呼叫记录的数据库表。

现在从终端号码(每个终端都有静态IP,并且Codeigniter中的会话也链接到IP)我可以找出我的应用程序的哪个用户(登录会话)即将接收呼叫。 我想找到一条出路,如何从服务器端发送数据(这将是关于呼叫的号码,如呼叫号码,过去的通话记录等)到该特定用户的浏览器通过AJAX或类似的东西?代理的浏览器需要显示从服务器发送的此信息。 由jquery等定期轮询浏览器是不可能的,因为数据需要几乎立即更新,快速轮询到这个程度将导致客户端的高CPU使用率以及网络上的额外负载。

P.S。:我只想知道如何从服务器端修改浏览器数据。

1 个答案:

答案 0 :(得分:1)

在AJAX中,异步请求/响应不涉及轮询;只有一个开放的TCP连接和非阻塞I / O.客户提出请求但立即返回;当服务器发送响应时,将通知客户端。因此,您可以使用AJAX的XMLHttpRequest实现您想要的而无需轮询[1]。您只需要一个用于提供通知的网址。根据您需要扩展的方式,您可以拥有一个请求线程和一般调度方法,或者每个不同的网址和不同的线程。

[1]说实话,很少投票。您确实需要确定会话/全局超时是什么,并在该时间限制内重新发出请求。