(1) socket实现(socket通信有一个好处是不必基于web,可以直接与应用程序进行通信)
as 和 java之间使用socket进行数据传输。
as1和as2 只支持字符串传输
as3开始可以进行真正意义上的流传输。
java实现服务器端监听connect,有as的connect就新建一个线程来监听message。
(2) 使用flex自带类与java通信
这里有三种方式:
① flex与普通java类通信(RemoteObject)s:RemoteObject
WebService类与web服务进行通信,使用基于SOAP的XML或XML,web服务通过web服务描述语言(WSDL)定义其接口。
② flex与服务器交互HTTPService s:HTTPService
HTTPService类用于超文本传输协议(HTTP)实现与服务器的通信。Flex应用程序用GET或POST请求将数据发送到服务端,并处理该请求所返回的XML或字符串。使用这个HTTPService类,可以与PHP页,ColdFusion页,JSP 页,Javaservlet,RubyonRails,以及MicrosoftASP页进行通信。
③ flex与webservice交互webservice s:WebService
RemoteObject类可以与服务器之间通过ActionScriptMessageFormat(AMF)对象进行通信。通常来说,我们也可以把 Blazeds与Lcds归于这一类。RemoteObject也可以与java或coldFusion远程网关进行通信,或者通过开源项目(例如 AMFPHP.SabreAMF或WebORB)与.NET和PHP进行通信。
(3) 使用中间件
Blazeds(Lcds),Red5(FMS)流媒体服务器,PHPRPC等
关于blazeds和lcds的比较可以参看http://xiejiangbo.iteye.com/blog/455731
关于Red5与FMS这两个流媒体服务器,应该说它们本身的优势在于多多媒体上,而实现Flex与服务器端相连,也是它们最基本的功能之一。
参考文献:http://wenku.baidu.com/view/d30918f3f61fb7360b4c65d1.html
http://wenku.baidu.com/view/1e98ba93daef5ef7ba0d3c69.html
http://cpx23.iteye.com/blog/1459269
http://xiejiangbo.iteye.com/blog/455731
http://www.infoq.com/cn/news/2007/12/more-on-rpc-in-flex-with-amf