详解WebSocket跨域问题解决


Posted in HTML / CSS onAugust 06, 2018

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 极光之类的。

这里推荐GoEasy,简单易用 www.goeasy.io 还是免费的,可以尝试一下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3实现简易版的刮刮乐效果
Sep 27 HTML / CSS
全面解析CSS Media媒体查询使用操作(推荐)
Aug 15 HTML / CSS
CSS3教程(10):CSS3 HSL声明设置颜色
Apr 02 HTML / CSS
CSS3 transform的skew属性值图文详解
Jul 21 HTML / CSS
纯HTML5+CSS3制作图片旋转
Jan 12 HTML / CSS
简单总结CSS3中视窗单位Viewport的常见用法
Feb 04 HTML / CSS
结合CSS3的新特性来总结垂直居中的实现方法
May 30 HTML / CSS
html5-websocket基于远程方法调用的数据交互实现
Dec 04 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
Jul 02 HTML / CSS
HTML5自定义视频播放器源码
Jan 06 HTML / CSS
CSS3实现的侧滑菜单
Apr 27 HTML / CSS
CSS 实现磨砂玻璃(毛玻璃)效果样式
May 21 HTML / CSS
canvas实现二维码和图片合成的示例代码
Aug 01 #HTML / CSS
HTML5拖拽功能实现的拼图游戏
Jul 31 #HTML / CSS
Html5页面二次分享的实现
Jul 30 #HTML / CSS
利用Storage Event实现页面间通信的示例代码
Jul 26 #HTML / CSS
详解移动端Html5页面中1px边框的几种解决方法
Jul 24 #HTML / CSS
htnl5利用svg页面高斯模糊的方法
Jul 20 #HTML / CSS
html5 input输入实时检测以及延时优化
Jul 18 #HTML / CSS
You might like
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
JS 实现导航栏悬停效果
2013/09/23 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
js中this的用法实例分析
2015/01/10 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
livereload工具实现前端可视化开发【推荐】
2016/12/23 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
详细解析Python当中的数据类型和变量
2015/04/25 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
python类的实例化问题解决
2019/08/31 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
露营世界:Camping World
2017/02/02 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
2014迎接教师节演讲稿
2014/09/10 职场文书
工地食品安全责任书
2015/05/09 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL
Nginx HTTP跳转至HTTPS
2022/05/15 Servers