近日做項目中遇到javascript跨域問題,父頁面和子頁面要通信,並且父子頁面跨域,怎么辦?
大家結合以前經驗,想到了Websocket,websocket客戶端編程比較簡單,服務端我們用Java實現,
項目中要保證父子頁面通信是點對點,需要在服務端建立對父子頁面WebSocket的對應關系,即父
頁面發的消息只被子頁面收到,子頁面的消息也只被父頁面收到我們做了以下工作,嚴格保證了
WebSocket通信是點對點:
一是建立WebSocket鏈接的URL加上時間戳保證通信會話是唯一的;
二是在服務端保證父子頁面WebSocket一一對應關系。父子頁面的WebSocket在Open時都會
向服務端發出消息進行注冊,建立Senssion之間的對應關系。然后父子頁面就可通過雙方約束的通
信協議進行通信了。
百度了一下,網上服務端介紹Websocket的編程多是群發,我們進行了適當改造,滿足了項目
的需求。