发布网友 发布时间:2022-04-20 17:53
共1个回答
热心网友 时间:2023-07-28 03:03
WebSocket协议是基于TCP的一种新的网络协议。 浏览器通信通常是基于HTTP 协议,为什么还需要另一个协议?因为http只能由客户端发起,不能由服务端发起。
而WebSocket 浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
WebSocket规范
WebSocket 协议本质上是一个基于 TCP 的协议。为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,附加信息如图所示
连接过程(以js(客户端)和java(服务器端)为例)
js:ws.send( String msg) ps:入参可以是字符串或者json字符串java:onMessage(String message)message为客户端传来的信息
java:sendUser( String msg) js:ws.onmessage
4.断开连接onclose( CloseReason reason)
CloseReason.CloseCode ( WebSocket关闭连接的状态码,类似http的404)
js部分:
java部分(javax实现):
ps: session 用来唯一标识连接对象
使用注解@ServerEndpoint
参考文献
javax websocket:(服务端实现api文档) https://tomcat.apache.org/tomcat-8.0-doc/websocketapi/javax/websocket/package-summary.html
js websocket:(客户端api文档) https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket
rfc6455 (websocket协议规范): https://datatracker.ietf.org/doc/rfc6455/ ** 产品介绍**