最后更新:2022-06-15 13:55:06 手机定位技术交流文章
概述
websocket是单一的TCP连接上完全双重通信的协议
Websocket是一个网络通信协议, RFC6455定义了它的通信标准。
因为HTTP协议是一个无状态、不连接的单向应用程序层协议,它采用响应/请求模型。 通信请求只能由客户端发起,服务器响应客户端的请求
这种通信模型有一个缺点:HTTP协议不允许服务器向客户端发送主动请求
这种单向请求的特点是:如果服务器不断变化,客户端很难得到它,大多数Web应用程序通过频繁的非同步JavaScript和XML(AJAX)请求实现长队查询。轮询的效率低,非常浪费资源(因为你必须保持联系,或HTTP连接总是开放)。
网络接口连接允许客户端和服务器在全时通信.
Web浏览器和服务器必须实现WebSocket来建立和维护连接。 由于WebSocket连接的长期存在,与典型的HTTP连接不同,它对服务器产生了重大的影响
基于多个线程或多个线程的服务器不适合WebSocket,因为它打开连接,尽可能快地请求,然后关闭连接。任何真正的WebSocket服务器端实现都需要一个异步服务器
第一个参数是url,它指定了连接的URL。 第二个参数协议是可选的,它指定了一个可接受的子协议。
Socket.readyState: read-only属性 readyState表示连接状态,可以如下: 0表示连接尚未建立,1表示连接已经建立,通信,2表示连接已关闭,3表示连接已关闭或连接不能打开
Socket.bufferedAmount: read-only property bufferedAmount已被发送到等待输出的队列中,但尚未发出UTF-8文本字节
事件处理 事件程序说明
当连接建立时打开Socket.onopen触发器
消息Socket.onmessage客户端在接收服务器数据时触发
当通信错误发生时,错误socket.onerror触发
当连接关闭时关闭Socket.onclose触发器
Socket.send:使用连接发送数据
Socket.close() 关闭连接
首先,客户端发送一个HTTP请求,并在三个握手之后,建立一个TCP连接;
然后,收到客户端握手请求后,服务器也使用HTTP协议反馈数据
最后,客户端接收了一个成功的连接消息,并使用TC[传输通道启动全双重通信
WebSocket是一个双向通信协议,HTTP是一个单向通信协议
WebSocket需要浏览器和服务器的手连接
HTTP是浏览器向服务器发起的连接,服务器不事先知道此连接
Tomcat 7.0.5 开始支持WebSocket,主要定义如下两种方式
程序员:继承Javax.websocket.Endpoint及其实现
2,注释公式:已经定义了POJO,并添加了@ServerEndpoint-focused解决方案
本文由 在线网速测试 整理编辑,转载请注明出处。