WebSocket的交互实例
2021-03-22 17:23
标签:对象属性 打开 ret 申请 关闭 receive sub 链接 客户端 客户端分为以下5步(如无销毁操作,第5步可省略) 1、检测当前浏览器是否支持WebSocket 2、创建WebSocket对象(new WebSocket) 3、与服务端创建链接(onopen) 4、接收服务端返回的数据(onmessage) 5、当客户端或者服务端断开链接时,执行需要的操作(onclose) 服务端如下 WebSocket对象属性 Socket.readyState 只读属性 readyState 表示连接状态,可以是以下值: 0 - 表示连接尚未建立。 1 - 表示连接已建立,可以进行通信。 2 - 表示连接正在进行关闭。 3 - 表示连接已经关闭或者连接不能打开 WebSocket 协议本质上是一个基于 TCP 的协议。 为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。 Websocket 使用和 HTTP 相同的 TCP 端口,可以绕过大多数防火墙的限制。默认情况下,Websocket 协议使用 80 端口;运行在 TLS 之上时,默认使用 443 端口。 一个典型的Websocket握手请求如下: 客户端请求 服务器回应 WebSocket的交互实例 标签:对象属性 打开 ret 申请 关闭 receive sub 链接 客户端 原文地址:https://www.cnblogs.com/lansetuerqi/p/12701226.htmlfunction WebSocketTest()
{
if ("WebSocket" in window)
{
console.log("您的浏览器支持 WebSocket!");
// 打开一个 web socket
var ws = new WebSocket("ws://127.0.0.1:8080/oneAccept/websocket");
ws.onopen = function()
{
// Web Socket 已连接上,使用 send() 方法发送数据
ws.send("测试WebSocket");
console.log("数据发送中...");
};
ws.onmessage = function (evt)
{
var received_msg = evt.data;
console.log("数据已接收...");
};
ws.onclose = function()
{
// 关闭 websocket
console.log("连接已关闭...");
};
}
else
{
// 浏览器不支持 WebSocket
console.log("您的浏览器不支持 WebSocket!");
}
}
import java.io.IOException;
import java.util.concurrent.CopyOnWriteArraySet;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import org.springframework.stereotype.Component;
/**
* @date 2020年4月14日21:35:40
**/
@ServerEndpoint(value="/websocket")
@Component
public class WebSocket {
private static int onlineCount=0;
private static CopyOnWriteArraySet
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: example.com
Origin: http://example.com
Sec-WebSocket-Key: sN9cRrP/n9NdMgdcy2VJFQ==
Sec-WebSocket-Version: 13
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: fFBooB7FAkLlXgRSz0BT3v4hq5s=
Sec-WebSocket-Location: ws://example.com/
上一篇:unity 相机