首頁  >  文章  >  web前端  >  詳解WebSocket跨域問題解決

詳解WebSocket跨域問題解決

青灯夜游
青灯夜游轉載
2018-10-09 16:21:523162瀏覽

這篇文章主要介紹了詳解WebSocket跨域問題解決的相關資料,有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。

WebSocket protocol是HTML5一種新的協定。它實現了瀏覽器與伺服器全雙工通信,同時允許跨域通訊,是server push技術的一種很好的實作。我們使用Socket.io,它很好地封裝了webSocket接口,提供了更簡單、靈活的接口,也對不支援webSocket的瀏覽器提供了向下兼容。

專案中遇到javascript跨域問題,父頁面和子頁面要通信,並且父子頁面跨域,怎麼辦?

專案中要確保父子頁面通訊是點對點,需要在服務端建立對父子頁面WebSocket的對應關係,即父頁面發送的訊息只被子頁面收到,子頁面的訊息也只被父頁面收到我們做了以下工作,嚴格保證了

WebSocket通訊是點對點:

一是建立WebSocket連結的URL加上時間戳記保證通訊會話是唯一的;

二是在服務端保證父子頁面WebSocket一一對應關係。父子頁面的WebSocket在Open時都會向服務端發出訊息進行註冊,建立Senssion之間的對應關係。然後父子頁面就可透過雙方約束的通訊協定進行通訊了。

這裡我們寫個demo:

var p = document.getElementsByTagName(‘p’)[0];

var io = io.connect(‘http://127.0.0.1:3001’);

io.on(‘data’,function(data){

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 極光之類的。

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多相關教學請造訪Html5影片教學

相關推薦:

php公益訓練影片教學

#HTML5圖文教學

HTML5線上手冊

以上是詳解WebSocket跨域問題解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除

相關文章

看更多