java socket 简书_WebSocket学习简书

本文介绍了WebSocket协议的概念及其与单工、半双工和全双工通信的区别。详细解释了为什么选择使用WebSocket,特别是在解决传统网站实现推送时的问题。文章还提供了WebSocket的基本使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是Websocket?

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

2、单工,半双工和全双工通信?

在单工通信中,通信的信道是单向的,发送端与接收端也是固定的,即发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息。

半双工通信可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。

全双工通信是指在通信的任意时刻,线路上存在A到B和B到A的双向信号传输。

e4dd8c81af15eafb66754d10b5ec5c65.png

3、为什么要使用Websocket?

websock使得客户端与服务器的数据传输更加简单,允许服务器主动向客户端推送数据。

浏览器与服务器只需要完成一次握手就可以创立持久的链接,并进行双向数据传输。

传统网站实现推送,都是使用ajax轮循(间隔一定时间向服务器发起请求)会浪费大量服务器资源与带宽。

使用websocket则能够节省服务器资源和带宽。

8ac8c1a09d4ffb9de6b2c400e1e9efce.png

4、Webcocket 使用?

WebSocket 协议本质上是一个基于 TCP 的协议。

为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。

实例:

菜鸟教程(runoob.com)

functionWebSocketTest()

{if("WebSocket" inwindow)

{

alert("您的浏览器支持 WebSocket!");//打开一个 web socket

varws= newWebSocket("ws://localhost:9998/echo");

ws.onopen= function()

{//Web Socket 已连接上,使用 send() 方法发送数据

ws.send("发送数据");

alert("数据发送中...");

};

ws.onmessage= function(evt)

{varreceived_msg=evt.data;

alert("数据已接收...");

};

ws.onclose= function()

{//关闭 websocket

alert("连接已关闭...");

};

}else{//浏览器不支持 WebSocket

alert("您的浏览器不支持 WebSocket!");

}

}

运行 WebSocket

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值