什么是 WebSocket?深入理解html5中WebSocket


本文摘自PHP中文网,作者零下一度,侵删。

什么是 WebSocket

WebSocket的服务端和客户端可以双向进行通讯,并且允许跨域通讯。由HTTP/1.1Upgrade机制支持,通过ws(非加密)或wss(加密)协议进行通讯

1

2

3

4

5

6

7

8

9

WebSocket WebSocket(

  in DOMString url,

  in optional DOMString protocols

);

 

WebSocket WebSocket(

  in DOMString url,

  in optional DOMString[] protocols

);

HTML5 中的 WebSocket

HTML5只专注于客户端的API, 而服务器端是各个语言自己去实现

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

// 创建一个Socket实例

var socket = new WebSocket('ws://localhost:8080');

// 打开Socket

socket.onopen = function(event){

  // 发送一个初始化消息

  socket.send('I am the client and I\'m listening!');

  // 监听消息

  socket.onmessage = function(event){

    console.log('Client received a message',event);

  };

  // 监听Socket的关闭

  socket.onclose = function(event){

    console.log('Client notified socket has closed',event);

  };

  // 关闭Socket....

  //socket.close()

};

事件
onclose onerror onmessage onopen

属性

  • readyState: CONNECTING 0 OPEN 1 CLOSING 2 CLOSED 3

  • binaryType: String Blob ArrayBuffer

兼容性

方法1:
如果客户端不支持WebSocket, 那么可以使用几个候选选项 Flash Socket AJAX long-polling AJAX multipart streaming IFrame JSONP polling

方法2
使用Socket.io来抹平差异,该库可以在浏览器不支持WebSocket的时候, 自动用浏览器支持的消息推送方式进行连接, 该库还会检测连接是否掉线,并在掉线时自动为你重新连接。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

// 创建Socket.IO实例,建立连接

var socket= new io.Socket('localhost',{

  port: 8080,

});

socket.connect();

// 添加一个连接监听器

socket.on('connect',function(){

  console.log('Client has connected to the server!');

});

// 添加一个连接监听器

socket.on('message',function(data){

  console.log('Received a message from the server!',data);

});

// 添加一个关闭连接的监听器

socket.on('disconnect',function(){

  console.log('The client has disconnected!');

});

// 通过Socket发送一条消息到服务器

function sendMessageToServer(message){

  socket.send(message);

}

优势

  • 实时双向通信

  • 浏览器本地支持良好(兼容性可以用第三方库很好解决)

  • 支持自定义协议

实际应用

  • 聊天室

  • 服务器消息推送

  • 前后端实时系统

参考

  • Websocket | MDN

  • 认识HTML5的WebSocket

【相关推荐】

1. 免费h5在线视频教程

2. HTML5 完整版手册

3. php.cn原创html5视频教程

以上就是什么是 WebSocket?深入理解html5中WebSocket的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

html5中div和section以及article的区别分析

html5怎么实现图片转圈的动画效果

html5 figure标签是什么意思?html5 figure标签的使用方法详解

h5与传统html的区别

使用html5的5大原因是什么

html5中内容安全策略(csp)

html5如何使用canvas画空心圆与实心圆

html5上传图片ios系统和android系统下均显示摄像头拍照和图片选择

html5离线存储和cookie储存分析

利用html5的一个特性- deviceorientation来实现手机上摇一摇功能

更多相关阅读请进入《websocket》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...