日期:2014-05-17  浏览次数:20525 次

Comet初步研究与实践 – PHP到C#应用程序的数据推送DEMO

Comet初步研究与实践 – PHPC#应用程序的数据推送DEMO

?

?

前段时间小接触了一下comet,关于其基本原理和代码示例请参考我之前的博文《与comet的一次亲密接触——基于ajaxhttp的长连接技术》

?

这次我们稍微系统的实现一个由PHP Web 服务器端向一个C#客户端应用程序推送的示例。实现“推送”、“用户状态”、“用户列表”的功能。具体一些代码细节就不详细介绍了,主要拿出几个关键问题来与大家分享和讨论。

?

本文不讨论复杂的comet框架,只从最基本的ajax长连接实现层面来构建应用。若有兴趣研究pushletcomet框架的朋友请自行研究。

?

1.? 数据传输流程。

应用程序 -> 内嵌webbrowser -> javascript -> ajax后台 -> Web服务器抓住请求 -> Web服务放开请求并附带数据 -> json数据流 -> javascript -> 应用程序

?

使用C#内嵌的一个WebBrowser 访问一个页面来启动我们的长连接。(因为我不想与平台进行太多的绑定,所以尽量把所有的数据传输层全部放在WEB上来做,下同,不再解释。)

Web服务器收到后抓住请求,直到需要推送数据,则放开属于该客户端的请求。打成json发回,然后javascript回调C#绑定的函数,将数据传送到应用程序中。