您的位置:首页 > 其它

.Net2.0 --Winform结合WebBrowser控件和Socket老技术来实现另类Push~

2007-09-26 10:49 405 查看
目前的企业级开发比较流行的是Web2.0技术,但是由于Web技术基于请求--响应的交互模式,使很多效果无法有效的呈现。

比如在Push技术上面,很多人感到头痛~ 如何让服务器主动请求Browser端~ 这个技术很多技术普通的开发人员都感到很难解决(包括我~呵呵)

其实要在企业级开发中实现Push技术,难度是有,但是我们要懂得变换方式。 如果技术上一直卡在Push技术的研究上,很浪费时间。下面我讲讲我做的一个"伪Push” :

一:实现Form与页面的交互

HtmlDocument htmlDoc = webBrowser1.Document;//得到webBrowser1控件中页面的所有文档

HtmlElement btnElement = htmlDoc.All["btnClose"];//在文档中找到需要和form交互的元素

if (btnElement != null)

{

btnElement.Click += new HtmlElementEventHandler(HtmlBtnClose_Click);//给这个元素Click事件(元素为Button)加上EventHandler(委托方法名)

}

我这里给出的是简单的示例 这个示例详细版本来源为博客园一位仁兄~ 感谢~~

二:实现伪Push

我们现在已经能够实现form和页面进行交互了~ 那怎么实现Push呢?

其实我使用form承载页面的原因就是在这里,可能有人会觉得我麻烦~ 为什么不用Ajax动态刷数据呢?这样是可以实现无刷新得到实时的新数据,但是不停的刷服务器和通讯上面都是会冒较大的风险,我说过我们做的是企业级开发,稳定性和安全性都应该考虑到,所以我选择使用form承载web页面,这样的话,一般业务上的工作流转和业务操作都可以用先进的web技术来呈现和执行,另外实时取得数据(停留在某页面上,不用刷新就能得到服务端主动发过来的新数据)在web上还不成熟,只能依靠ajax动态主动请求服务器来实现所谓的Push推进;这样显然不如用老技术:Socket好用~

到这里大家也该明白我的思路了。 就是使用Socket技术进行信息交互,实现服务器指定某客户端去进行操作,然后通过form和页面的事件交互技巧来实现一个Push效果~

第一次发技术文章,这个东西我是昨天想到的~ 以前一直没用过,通过在本社区里查找资料,得到一些技术支持。自己也做过实验,证明了这中想法的可行性~ 如果各位有什么看法的话 留言给我~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: