在考慮用Flex做地圖前端時(shí),遇到了如何通信的問題,與地圖服務(wù)器交互基礎(chǔ)性能和速度的考慮二進(jìn)制傳輸是最佳的方式,但二進(jìn)制的問題在于擴(kuò)展能力太弱了,修改一個(gè)協(xié)議必須大動(dòng)周章。
發(fā)現(xiàn)Flex提供了Rpc.Soap,Wsdl的客戶端服務(wù)功能,所以好好琢磨了一下這兩個(gè)協(xié)議
SOAP,WSDL以前斷斷續(xù)續(xù)也接觸過一些,一直沒有好好利用過,以前做php做Rpc時(shí)采用的是xmlRpc協(xié)議,記得在sf上還有個(gè)s-xmlrpc來簡化tag實(shí)現(xiàn)低數(shù)據(jù)量的功能。Flex當(dāng)然不能使用類似Ice和Ace之類的通信框架,但也提供了Socket工具,但不知當(dāng)發(fā)布運(yùn)行在瀏覽器是是否出于安全的限制而無法直接使用socket連接功能?java的applet好像也是運(yùn)行在sandbox之內(nèi),限制多多。
也許Flex只能類似Ajax走h(yuǎn)ttp這條道了,單向連接,數(shù)據(jù)量大,各種xml傳輸協(xié)議,這些夠煩惱一陣子的
soap,wsdl看了以后發(fā)覺是這么的簡單,前者是數(shù)據(jù)通信協(xié)議,后者是服務(wù)發(fā)現(xiàn)協(xié)議,客戶端可以通過發(fā)送wsdl來查詢服務(wù)器的服務(wù)能力,從而采用soap進(jìn)行數(shù)據(jù)通信,這些繁瑣是繁瑣了一些,但畢竟是w3c的標(biāo)準(zhǔn),在沒有xmlRpc的情況下,也只好采用soap了
先把功能架設(shè)起來,等有時(shí)間了嘗試一下在Flex里面直接采用socket與地圖服務(wù)器進(jìn)行交互,應(yīng)該可以吧,至少flv都是從專用流媒體服務(wù)端口傳輸?shù)奖镜氐摹?br>考慮到私有網(wǎng)絡(luò)的各種差異,走h(yuǎn)ttp可能是唯一的出路了,不然給gateway攔下來了就不好嘍!!
flex也是個(gè)新手,花時(shí)間琢磨這個(gè)東東