博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js--webSocket入门
阅读量:7078 次
发布时间:2019-06-28

本文共 1678 字,大约阅读时间需要 5 分钟。

-- js--webSocket入门

Websocket

1.websocket是什么?

WebSocket是为解决客户端与服务端实时通信而产生的技术。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,

此后服务端与客户端通过此TCP连接进行实时通信。

2.websocket的优点

以前我们实现推送技术,用的都是轮询,在特点的时间间隔有浏览器自动发出请求,将服务器的消息主动的拉回来,在这种情况下,我们需要不断的向服务器 发送请求,然而HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽和服务器资源。会占用大量的带宽和服务器资源。

WebSocket API最伟大之处在于服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息。在建立连接之后,服务器可以主动传送数据给客户端。

此外,服务器与客户端之间交换的标头信息很小。

WebSocket并不限于以Ajax(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以彼此相互推送信息;

关于ajax,comet,websocket的详细介绍,和websocket报文的介绍,大家可以参看  网页设计]Ajax、Comet与Websocket,

我如果以后有时间,也会写出来的

3.如何使用websocket

客户端

在支持WebSocket的浏览器中,在创建socket之后。可以通过onopen,onmessage,onclose即onerror四个事件实现对socket进行响应

一个简单是示例

var ws = new WebSocket(“ws://localhost:8080”);

ws.onopen = function()

{  console.log(“open”);

  ws.send(“hello”);

};

ws.onmessage = function(evt)

{

  console.log(evt.data)

};

ws.onclose = function(evt)

{

  console.log(“WebSocketClosed!”);

};

ws.onerror = function(evt)

{

  console.log(“WebSocketError!”);

};

1.var ws = new WebSocket(“ws://localhost:8080”);

申请一个WebSocket对象,参数是需要连接的服务器端的地址,同http协议使用http://开头一样,WebSocket协议的URL使用ws://开头,另外安全的WebSocket协议使用wss://开头。

ws.send(“hello”);

用于叫消息发送到服务端
2.ws.onopen = function() { console.log(“open”)};

当websocket创建成功时,即会触发onopen事件

3.ws.onmessage = function(evt) { console.log(evt.data) };
当客户端收到服务端发来的消息时,会触发onmessage事件,参数evt.data中包含server传输过来的数据
4.ws.onclose = function(evt) { console.log(“WebSocketClosed!”); };
当客户端收到服务端发送的关闭连接的请求时,触发onclose事件
5.ws.onerror = function(evt) { console.log(“WebSocketError!”); };
如果出现连接,处理,接收,发送数据失败的时候就会触发onerror事件
我们可以看出所有的操作都是采用事件的方式触发的,这样就不会阻塞UI,使得UI有更快的响应时间,得到更好的用户体验。

转载于:https://www.cnblogs.com/jtcr/p/8657477.html

你可能感兴趣的文章
Red5/FMS视频直播带宽计算
查看>>
翻硬币
查看>>
Non-Rule Package常用表名
查看>>
JavaMail给QQ邮箱发邮件报错,没有SSL加密
查看>>
【解决】缺少libstdc++.so.6库的原因及解决的方法
查看>>
url 中文传参 乱码问题
查看>>
很反感
查看>>
Oracle for 循环
查看>>
统计学基于SPSS贾俊平 授课笔记 发布作业 spss19cn 软件下载地址及破解包spss19_10039 下载地址...
查看>>
ldr和adr在使用标号表达式作为操作数的区别
查看>>
DS博客作业06--图
查看>>
看到大家对数据库分页有研究,也分享个本人的
查看>>
n个元素的入栈顺序有多少种出栈顺序?
查看>>
Unity3D的Android移动之路之平台依赖编译
查看>>
layer close 关闭层IE9-浏览器崩溃问题解决
查看>>
排序算法之选择排序
查看>>
SSIS Error Code DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR
查看>>
AX 条码打印
查看>>
面向对象1
查看>>
解析微信开发之搜索歌曲
查看>>