一、 WebSocket是什么?

Websocket是一种网络通信协议,是一个在计算机里专门在【两点】之间传输数据的约定和规范。

二、 为什么存在WebSocket?

因为 HTTP 协议有一个缺陷:通信只能由客户端发起。

但实际上,如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用"轮询":每隔一段时候,就发出一个询问,了解服务器有没有新的信息。

比如:摄像头识别到跌倒的人会在前端页面上报警,这个时候就需要服务器向客户端发送请求。

知道轮询的原理后,我们可以轻而易举得看出缺点是:效率低,且浪费资源。(因为每查看一下服务器是否有新消息的时候,就要建立tcp连接)

WebSocket是基于Http协议的,或者说借用了Http协议来完成一部分握手,在握手阶段与Http是相同的。

最重要的一点是:没有同源限制,客户端可以与任意服务器通信,也就不用考虑跨域的问题了。

三、 怎么使用WebSocket?

 1 var ws = new WebSocket("wss://example.websocket.com");//协议标识符是ws(如果加密,则为wss),括号里是服务器地址。新建 WebSocket 实例,客户端就会与服务器进行连接。
2
3 ws.onopen = function(e) {
4 console.log("Connection open ...");
5 ws.send("Hello WebSockets!");
6 }; //实例对象的onopen属性,用于指定连接成功后的回调函数。
7
8 ws.onmessage = function(e) {
9 console.log( "Received Message: " + e.data);
10 ws.close();
11 }; //实例对象的onmessage属性,用于指定收到服务器数据后的回调函数。
12
13 ws.onclose = function(e) {
14 console.log("Connection closed.");
15 }; //实例对象的onclose属性,用于指定连接关闭后的回调函数。
16
17 //实例对象的send()方法用于向服务器发送数据。
现在的想法是

Websocket是什么?的更多相关文章

  1. 漫扯:从polling到Websocket

    Http被设计成了一个单向的通信的协议,即客户端发起一个request,然后服务器回应一个response.这让服务器很为恼火:我特么才是老大,我居然不能给小弟发消息... 轮询 老大发火了,小弟们自 ...

  2. 细说WebSocket - Node篇

    在上一篇提高到了 web 通信的各种方式,包括 轮询.长连接 以及各种 HTML5 中提到的手段.本文将详细描述 WebSocket协议 在 web通讯 中的实现. 一.WebSocket 协议 1. ...

  3. java使用websocket,并且获取HttpSession,源码分析

    转载请在页首注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6238826.html 一:本文使用范围 此文不仅仅局限于spring boot,普通的sprin ...

  4. WebSocket - ( 一.概述 )

    说到 WebSocket,不得不提 HTML5,作为近年来Web技术领域最大的改进与变化,包含CSS3.离线与存储.多媒体.连接性( Connectivity )等一系列领域,而即将介绍的 WebSo ...

  5. php+websocket搭建简易聊天室实践

    1.前言 公司游戏里面有个简单的聊天室,了解了之后才知道是node+websocket做的,想想php也来做个简单的聊天室.于是搜集各种资料看文档.找实例自己也写了个简单的聊天室. http连接分为短 ...

  6. Demo源码放送:打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!

    随着HTML5 WebSocket技术的日益成熟与普及,我们可以借助WebSocket来更加方便地打通BS与CS -- 因为B/S中的WebSocket可以直接连接到C/S的服务端,并进行双向通信.如 ...

  7. Cowboy 开源 WebSocket 网络库

    Cowboy.WebSockets 是一个托管在 GitHub 上的基于 .NET/C# 实现的开源 WebSocket 网络库,其完整的实现了 RFC 6455 (The WebSocket Pro ...

  8. 借助Nodejs探究WebSocket

    文章导读: 一.概述-what's WebSocket? 二.运行在浏览器中的WebSocket客户端+使用ws模块搭建的简单服务器 三.Node中的WebSocket 四.socket.io 五.扩 ...

  9. 细说websocket - php篇

    下面我画了一个图演示 client 和 server 之间建立 websocket 连接时握手部分,这个部分在 node 中可以十分轻松的完成,因为 node 提供的 net 模块已经对 socket ...

  10. webSocket and LKDBHelper的使用说明

    socketket与lkdbhelper来处理数据 客户需求: 当我们有需要从自己的后台推送消息给我们的用户时,用户需要实时的接收到来自我们的推送消息.前提是没有使用第三方的推送框架,那么这个使用we ...

随机推荐

  1. R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标|附代码数据

    全文下载链接:http://tecdat.cn/?p=27515 最*我们被客户要求撰写关于主成分PCA.因子分析.聚类的研究报告,包括一些图形和统计输出. 建立重庆市经济指标发展体系,以重庆市一小时 ...

  2. 苹果手机备份及itunes下载更新路径

    1.itunes备份路径: C:\Users\xxx.xxx\AppData\Roaming\Apple Computer\MobileSync\Backup\ 2.itunes更新IOS路径: C: ...

  3. tiktok运营工具

    1.自信点!这就是TikTok最全运营工具合集! - 知乎 (zhihu.com) 2.骄傲的和大家说!这就是TikTok最全运营工具合集! - 知乎 (zhihu.com) 3.如何批量去水印下载抖 ...

  4. SAP Process Orchestration (SAP PO): The Comprehensive Guide (2nd Edition) (SAP PRESS)

    SAP Process Orchestration (SAP PO): The Comprehensive Guide (2nd Edition) (SAP PRESS) 有需要的联系 wx :erp ...

  5. Tomcat 配置文件详解之-- server.xml

    一.背景 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛.server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat ...

  6. redis过期事件监听

    1 修改 redis.conf配置文件: K Keyspace events, published with keyspace@ prefix事件 E Keyevent events, publish ...

  7. SHR常用f7[更新ing]

    <field id="unit" name="unit" label="单位" dataType="F7" uip ...

  8. ORihard KCU116E: 经济实惠的 100Gbps 网络和存储 FPGA 开发平台

    ORihard KCU116E: 经济实惠的 100Gbps 网络和存储 FPGA 开发平台   ORihard KCU116E: 经济实惠的 100Gbps 网络和存储 FPGA 开发平台 Kint ...

  9. go 镜像输出一个树 mac模式

    递归写的很low,mac模式 package main import "fmt" type TreeNode struct { Value int Left *TreeNode r ...

  10. 基于ALSA库实现音频采集和播放遇到的问题

    最近基于Linux系统C语言实现音频的采集和播放,建立了两个子线程,一个通过调用snd_pcm_readi来实现采集数据,并存入FIFO中,另一个从FIFO中取数据并通过udp的sendto发送出去, ...