WebSocket技术
webSocket技术
在html5技术革新中,加入了WebSocket技术
1.webSocket实际是TCP连接
webSocket在最初将发送http连接请求到服务器端,
但是在header中加入了附加信息,
这些附加信息会在服务器端接收到并解析,
使得服务器端知道需要把这一个http连接升级到WebSocket的连接,
服务器随后将响应返回给客户端, 这样WebSocket连接就建立了。
2.在发送数据的时候,数据包的开头以0x00开始,以0xFF结束,
用以区分每次发送数据包
3.其他:webSocket客户端由js编写,服务端可以使用各种语言,需要遵循webSocket的规范,实现能够支持webSocket的应用服务器端
在webSocket之前的轮询技术
1.这种模式在接触webSocket的期间,自己就想到了,如果使用ajax异步请求,可以让服务器不响应ajax,当需要给客户端发信息的时候再响应,这样客户端接收信息后,再请求,这期间服务器如果有信息要发给客户端的话,先缓存,等客户端在发请求的时候,再一起响应。这样循环询问,当有信息就响应,无信息就等待。
2.Iframe 隐藏标签,标签的src指向是服务器servlet,每次触发时间到servlet时,servlet就会把响应数据写入Iframe的隐藏标签,响应的数据的形式是JS可执行代码,这样就会自动执行,以达到传输数据的目的;
缺点是,不知道连接状态;而且Iframe已经过时
socket.io
代码地址:https://github.com/socketio/socket.io/
实现了传统的轮询机制,包括服务端:
a.Adobe® Flash® Socket
b.AJAX long polling
c.AJAX multipart streaming
d.Forever Iframe
f.JSONP Polling
实现了webSocket,包括服务器的实现,可以使用node.js搭建
创建服务器的代码示例:
var server = require('http').createServer();
var io = require('socket.io')(server);
io.on('connection', function(socket){
socket.on('event', function(data){});
socket.on('disconnect', function(){});
});
server.listen(3000);
WebSocket技术的更多相关文章
- HTML5 WebSocket 技术介绍
WebSocket是html5规范新引入的功能,用于解决浏览器与后台服务器双向通讯的问题,使用WebSocket技术,后台可以随时向前端推送消息,以保证前后台状态统一,在传统的无状态HTTP协议中,这 ...
- 对WebSocket技术的学习与探索(二)
近日重新开始学习WebSocket技术,什么是WebSocket,在<对WebSocket技术的学习与探索(一)>文章中已经说明白了,还没理解可以看看这篇文章http://www.ruan ...
- WebSocket详解(一):初步认识WebSocket技术
1.什么是Socket?什么是WebSocket? 对于第1次听说WebSocket技术的人来说,两者有什么区别?websocket是仅仅将socket的概念移植到浏览器中的实现吗? 我们知道,在网络 ...
- 基于Springboot后台,前台 vue.js 跨域 Activiti6 工作流(用到websocket技术) 的项目
工作流模块----------------------------------------------------------------------------------------------- ...
- 常用的Websocket技术一览
1. 前言 Websocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据 ...
- 简易集成websocket技术实现消息推送
Websocket 简介 首先介绍下WebSocket,它是一种网络通信技术,该技术最大的特点就是,服务器端可以主动往客户端发送消息:当然,客户端也可以主动往服务器发送消息,实现两端的消息通信,属于网 ...
- websocket技术分享
开发环境: spring3+tomcat7+spring-websocket4 运行环境: windows.Linux 一.背景: 产品将要发布的消息或其他需要让客户提前知道的消息,在客户端和服务端建 ...
- SpringBoot WebSocket技术
最近看了Spring in Action,了解了一下WebSocket和Stomp协议相关技术,并搭建了一个项目.网上的例子不完整或者描述不清,所以自己记录一下以作备忘. 一.配置 Spring Bo ...
- vue项目使用websocket技术
一.为什么需要websocket? 前端和后端的交互模式最常见的就是前端发数据请求,从后端拿到数据后展示到页面中.如果前端不做操作,后端不能主动向前端推送数据,这也是http协议的缺陷. 因此,一种新 ...
随机推荐
- 【poj3608】 Bridge Across Islands
http://poj.org/problem?id=3608 (题目链接) 题意 求两凸包间最短距离 Solution 难写难调,旋转卡壳,还真是卡死我了. 先分别选出两凸包最上点和最下点,从这两点开 ...
- ExtJS入门教程02,form也可以很优雅
在上一篇<Extjs window 入门>中,我们已经看到了如何将一个form组件放到window中,今天我们来看看form的一些优雅的工作方式. 使用fieldDefaults,优雅的设 ...
- mysql PDO的使用
原文链接:http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/08/12/1797753.html
- win7能上网,上网图标显示红叉的解决办法
今天笔记本开机,发现电脑可以上网,但是上网图标显示红叉,看这很不爽,在网上搜了解决版本. 其实很简单,你按照下面步骤操作即可. 1,右击小图标,打开网络和共享中心. 2,更改适配器设置 把无用的无线都 ...
- 记一个奇怪的python异常处理过程
我的一个程序, 总是在退出时报异常, Exception TypeError: "'NoneType' object is not callable" in <functio ...
- 繁华模拟赛 vicent的字符串
#include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...
- cocos2d-x创建精灵动画方式汇总
1.创建精灵框架缓存,并向其中添加相应的动画文件(plist),最后,通过动画集缓存生产动画 CCSpriteFrameCache *cache = CCSpriteFrameCache::share ...
- /run/systemd/private: No such file or directory
今天执行consul脚本的时候报错 /run/systemd/private: No such file or directory reboot -f 重启电脑private文件就出现了.
- Centos7上使用官方YUM源安装Mysql
1. 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2. 安装mysql-co ...
- 裸设备和Oracle问答20例
导读裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备.裸设备可以绑定一个分区,也可以绑定一个磁盘.本文收集裸设备和Oracle问答20例. 1.什么叫 ...