如何解决WebSocket跨域问题
本文讲解"怎么解决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跨域问题" 就介绍到此。希望多多支持编程宝库。
本文讲解"canvas实现二维码和图片合成的方法",用于解决相关问题。实现思路是这样的使用jr-qrcode将url生成data:base64供img使用然后使用canvas 将两张图合成一张图片遇到 ...