WebSockset

    xiaoxiao2023-10-19  130

    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 允许服务端主动向客户端推送数据。 在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。(建立WebSocket连接后,一直保持连接状态) 当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。 @ServerEndpoint() 当创建好一个(服务)端点之后,将它以一个指定的URI发布到应用当中,这样远程客户端就能连接上它了。

    通过在Service中 WebSocket.sendMessage();//发送到 public void sendMessage(String message){} 因为后端已经实现了WebSocket通信,所以会通知到Html页面中,再进行相关的逻辑操作。

    通信过程可互相发送JSON,XML,HTML或图片等任意格式的数据。 连接方仍是客户端,一旦建立连接就可以互相发送报文。 WebSocket的首部信息很小,减少了通信量。

    握手.请求: 在HTTP的Upgrade首部字段中增加:Upgrade: Websocket,Sec-WebSocket-Key: xxxxxx(握手过程的键值) Sec-WebSocket-Protocol: chat, superchat (子协议) Sec-WebSocket-Version: 13(版本号)

    握手.响应 对于之前的请求,返回状态码101 Switching Protocols的响应,以及 Sec-WebSocket-Accept: xxxxxx(握手过程的键值) Sec-WebSocket-Protocol: chat, superchat (子协议)

    成功握手后,通信时不再使用HTTP的数据帧,采用WebSocket的独立数据帧。

    最新回复(0)