websocket可以访问http服务器吗?

发布网友 发布时间: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/ ** 产品介绍**

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com