WebSocket protocol是HTML5一種新的協議。它實現了瀏覽器與服務器全雙工通訊,同時容許跨域通信,是server push技術的一種很好的實現。咱們使用Socket.io,它很好地封裝了webSocket接口,提供了更簡單、靈活的接口,也對不支持webSocket的瀏覽器提供了向下兼容。javascript
項目中遇到javascript跨域問題,父頁面和子頁面要通訊,而且父子頁面跨域,怎麼辦?java
項目中要保證父子頁面通訊是點對點,須要在服務端創建對父子頁面WebSocket的對應關係,即父頁面發的消息只被子頁面收到,子頁面的消息也只被父頁面收到咱們作了如下工做,嚴格保證了web
WebSocket通訊是點對點:跨域
一是創建WebSocket連接的URL加上時間戳保證通訊會話是惟一的;瀏覽器
二是在服務端保證父子頁面WebSocket一一對應關係。父子頁面的WebSocket在Open時都會向服務端發出消息進行註冊,創建Senssion之間的對應關係。而後父子頁面就可經過雙方約束的通訊協議進行通訊了。服務器
這裏咱們寫個demo:socket
var p = document.getElementsByTagName(‘p’)[0];ui
var io = io.connect(‘http://127.0.0.1:3001’);socket.io
io.on(‘data’,function(data){server
alert(‘2S後改變數據’);
p.innerHTML = data
});
服務器端
var io = require(‘socket.io’)(server);
io.on(‘connection’,function(client){
client.emit(‘data’,’hello WebSocket from 3001.’);
});
今天就說到這裏,但願對你們有所幫助,同時你們若是不想太花時間去作WebSocket這塊,能夠嘗試使用三方WebSocket,相似GoEasy 極光之類的。
這裏推薦GoEasy,簡單易用 www.goeasy.io 仍是免費的,能夠嘗試一下。