WebSocket通信协议 API简介
WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如 Chrome,Safari,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome,从chrome12就已经开始支持,随着协 议草案的不断变化,各个浏览器对协议的实现也在不停的更新。该协议还是草案,没有成为标准,不过成为标准应该只是时间问题了,从WebSocket草案的 提出到现在已经有十几个版本了,目前最新的是版本17,所对应的协议版本号为13,目前对该协议支持最完善的浏览器应该是chrome,毕竟 WebSocket协议草案也是Google发布的。
1. WebSocket API简介
首先看一段简单的javascript代码,该代码调用了WebSockets的API。
ws.onopen = function(){ws.send(“Test!”); };
ws.onmessage = function(evt){console.log(evt.data);ws.close();};
ws.onclose = function(evt){console.log(“WebSocketClosed!”);};
ws.onerror = function(evt){console.log(“WebSocketError!”);};
这份代码总共只有5行,现在简单概述一下这5行代码的意义。
第一行代码是在申请一个WebSocket对象,参数是需要连接的服务器端的地址,同http协议使用http://开头一样,WebSocket协议的URL使用ws://开头,另外安全的WebSocket协议使用wss://开头。
第二行到第五行为WebSocket对象注册消息的处理函 数,WebSocket对象一共支持四个消息 onopen, onmessage, onclose和onerror,当Browser和WebSocketServer连接成功后,会触发onopen消息;如果连接失败,发送、接收数据 失败或者处理数据出现错误,browser会触发onerror消息;当Browser接收到WebSocketServer发送过来的数据时,就会触发 onmessage消息,参数evt中包含server传输过来的数据;当Browser接收到WebSocketServer端发送的关闭连接请求时, 就会触发onclose消息。我们可以看出所有的操作都是采用消息的方式触发的,这样就不会阻塞UI,使得UI有更快的响应时间,得到更好的用户体验。
相关文章
- Django使用Channels实现WebSocket
- WebSocket入门
- WebSocket——SuperWebSocket实现服务端和客户端
- ABP源码分析三十七:ABP.Web.Api Script Proxy API
- php使用WebSocket详细教程之建立连接(一)
- 实现websocket 主动消息推送,用laravel+Swoole
- websocket 测试
- Nest.js WebSocket
- Netty 实现 WebSocket 聊天功能
- Jenkins API groovy调用实践: Jenkins Core Api & Job DSL创建项目
- linux shell脚本:通过API实现git仓库从gitee向gitlab的批量迁移(gitlab api)
- java代码:netty整合websocket实现长连接代码示例
- 步骤5 - Orchestra从微服务提供商获得结果,再发送回WebSocket服务器
- WebSocket连接里客户端和服务器端的Socket ID
- WebSocket集群解决方案
- Python编程:tornado实现WebSocket通讯
- HTML5使用和实战分析HTML5 WebSocket API
- 使用 HTML5 webSocket API实现即时通讯的功能
- 【项目实战】基于netty-websocket-spring-boot-starter实现WebSocket服务器长链接处理
- 高性能对象存储MinIO学习&API使用&使用api创建文件夹&MinIO工具类
- WebSocket协议入门介绍