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