前端常见知识点四之webscoket -ag凯发k8国际
前端常见知识四之webscoket
1. 概览
1)websocket 它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。(诞生在2008年,2011年成为国际标准)
2. 其他特点包括:
(1)建立在 tcp 协议之上,服务器端的实现比较容易。
(2)与 http 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 http 协议,因此握手时不容易屏蔽,能通过各种 http 代理服务器。
(3)数据格式比较轻量,性能开销小,通信高效。
(4)可以发送文本,也可以发送二进制数据。
(5)没有同源限制,客户端可以与任意服务器通信。
(6)协议标识符是ws(如果加密,则为wss),服务器网址就是 url。(ws://example.com:80/some/path)
3. 实例
var ws = new websocket("wss://echo.websocket.org");ws.onopen = function(evt) { console.log("connection open ..."); ws.send("hello websockets!"); };ws.onmessage = function(evt) {console.log( "received message: " evt.data);ws.close(); };ws.onclose = function(evt) {console.log("connection closed."); };4. 客户端的 api:
-
websocket 对象作为一个构造函数,用于新建 websocket 实例
var ws = new websocket('ws://localhost:8080'); -
websocket.readystate
readystate属性返回实例对象的当前状态,共有四种:
connecting:值为0,表示正在连接。
open:值为1,表示连接成功,可以通信了。
closing:值为2,表示连接正在关闭。
closed:值为3,表示连接已经关闭,或者打开连接失败 -
websocket.onopen
ws.onopen = function () {ws.send('hello server!'); } //如果要指定多个回调函数,可以使用addeventlistener方法。 addeventlistener('open', function (event) {ws.send('hello server!'); })
实例对象的onopen属性,用于指定连接成功后的回调函数。 -
websocket.onclose
ws.onclose = function(event) {var code = event.code;var reason = event.reason;var wasclean = event.wasclean;// handle close event };ws.addeventlistener("close", function(event) {var code = event.code;var reason = event.reason;var wasclean = event.wasclean;// handle close event });
实例对象的onclose属性,用于指定连接关闭后的回调函数。 -
websocket.onmessage
ws.onmessage = function(event) {var data = event.data;// 处理数据 };ws.addeventlistener("message", function(event) {var data = event.data;// 处理数据 });
实例对象的onmessage属性,用于指定收到服务器数据后的回调函数。 -
websocket.send()
ws.send('your message');
实例对象的send()方法用于向服务器发送数据。 -
websocket.bufferedamount
var data = new arraybuffer(10000000); socket.send(data);if (socket.bufferedamount === 0) {// 发送完毕 } else {// 发送还没结束 }
实例对象的bufferedamount属性,表示还有多少字节的二进制数据没有发送出去。它可以用来判断发送是否结束。 -
websocket.onerror
socket.onerror = function(event) {// handle error event };socket.addeventlistener("error", function(event) {// handle error event });
实例对象的onerror属性,用于指定报错时的回调函数。
原文请移步:websocket 教程
总结
以上是ag凯发k8国际为你收集整理的前端常见知识点四之webscoket的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 前端常见知识点二之浏览器
- 下一篇: