B/S架构下的socket推送方式 flash xmlsocket

(一)基本概述

现在B/S结构的系统越来越流行,然而由于B/S系统都是基于HTTP协议的,这就决定了它在实时应用方面的缺陷。因为服务器端的信息发生了任何变化都不会主动发送到客户端(曾经热及一时的“推”技术已经不了了之了),都需要客户端主动的去请求服务器端才能获得新数据。那么这里就存在一个问题了,客户端如何才知道服务器端数据发生了变化?何时才该去向服务器请求新数据呢?现在在B/S里通常的解决方案是通过客户端浏览器的定时刷新来定时向服务器请求新数据,但是这样存在一定的时间误差,在一些实时性要求比较高的系统(如生产线的监控等)里还是不能达到要求,并且在服务器端没有数据变化时客户端仍然会发出获取数据的请求,这样就加重了服务器和网络传输的负担。 
然而在C/S系统里,我们通过Scoket通道可以很容易的在数据发生变化时由Server端主动的将变化后新数据送到Client端。但是我们如何在B/S的系统里使用Scoket呢?我们可能会想到利用activeX控件,但这涉及到数字签名等问题,而且制作过程也比较麻烦。 
其实Flash已经为我们提供了一个XMLSocket对象,来实现了客户端socket,允许包含Flash应用的浏览器与服务端建立socket连接,之后Flash应用与服务端就可以相互发送XML数据,而且在一个socket连接建立之后,在该连接上传送的数据量是没有限制的,直到socket连接关闭。另外一方面页面 上的Flash和页面上的Javascript之间可以很容易的实现通信,互相控制和调用,这样我们就可以利用Flash作为桥梁来连接浏览器上的WEB页面和服务器端Socket通信,从而达到服务器主动“推”客户端的效果。

你可能感兴趣的:(socket)