WebSocket、服务器推送技术
创始人
2025-01-10 10:34:17
0

WebSocket

是一种在单个 TCP 连接上进行 全双工 通信的协议,它可以让客户端和服务器之间进行实时的双向通信,且不存在同源策略限制

WebSocket 使用一个长连接,在客户端和服务器之间保持持久的连接,从而可以实时地发送和接收数据。

在 WebSocket 中,客户端和服务器之间可以互相发送消息,客户端可以使用 JavaScript 中的 WebSocket API 发送消息到服务器,也可以接收服务器发送的消息。
与传统的HTTP通信相比,WebSocket更轻量级、更高效,适用于需要实时通信或推送消息的场景。

WebSocket的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息。
》》心跳机制是什么?

心跳机制是每隔一段时间会向服务器发送一个数据包,告诉服务器自己还活着,同时客户端会确认服务器端是否还活着,如果还活着的话,就会回传一个数据包给客户端来确定服务器端也还活着,否则的话,有可能是网络断开连接了。需要重连~

WebSocket与HTTP的区别

websocket和http都是基于TCP的应用层协议,使用的也是 80 端口(若运行在 TLS 之上时,默认使用 443 端口)。

其区别主要就在于连接的性质和通信方式。

WebSocket是一种双向通信的协议,通过一次握手即可建立持久性的连接,服务器和客户端可以随时发送和接收数据。

而HTTP协议是一种请求-响应模式的协议,每次通信都需要发送一条请求并等待服务器的响应。

WebSocket的实时性更好,延迟更低,并且在服务器和客户端之间提供双向的即时通信能力,适用于需要实时数据传输的场景。

常见应用场景

实时聊天:WebSocket能够提供双向、实时的通信机制,使得实时聊天应用能够快速、高效地发送和接收消息,实现即时通信。
实时协作:用于实时协作工具,如协同编辑文档、白板绘画、团队任务管理等,团队成员可以实时地在同一页面上进行互动和实时更新。
实时数据推送:用于实时数据推送场景,如股票行情、新闻快讯、实时天气信息等,服务器可以实时将数据推送给客户端,确保数据的及时性和准确性。
多人在线游戏:实时的双向通信机制,适用于多人在线游戏应用,使得游戏服务器能够实时地将游戏状态和玩家行为传输给客户端,实现游戏的实时互动。
在线客服:WebSocket可以用于在线客服和客户支持系统,实现实时的客户沟通和问题解决,提供更好的用户体验,减少等待时间。

asp.net websocket

在这里插入图片描述
在这里插入图片描述

       WebSocket Chat                 
    服务端

    在这里插入图片描述

    using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Net.WebSockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.WebSockets;  namespace WebApplication1.Controllers {     public class ZenController : ApiController     {         public HttpResponseMessage Get()         {             if (HttpContext.Current.IsWebSocketRequest)             {                 HttpContext.Current.AcceptWebSocketRequest(ProcessWSChat);             }             return new HttpResponseMessage(HttpStatusCode.SwitchingProtocols);         }          private async Task ProcessWSChat(AspNetWebSocketContext arg)         {             WebSocket socket = arg.WebSocket;             while (true)             {                 ArraySegment buffer = new ArraySegment(new byte[1024]);                 WebSocketReceiveResult result = await socket.ReceiveAsync(buffer, CancellationToken.None);                 if (socket.State == WebSocketState.Open)                 {                     string message = Encoding.UTF8.GetString(buffer.Array, 0, result.Count);                     string returnMessage = "You send :" + message + ". at" + DateTime.Now.ToLongTimeString();                     buffer = new ArraySegment(Encoding.UTF8.GetBytes(returnMessage));                     await socket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);                 }                 else                 {                     break;                 }             }         }   } }  

    相关内容

    热门资讯

    推荐十款“爱来大菠萝挂”太实锤... 推荐十款“爱来大菠萝挂”太实锤了透视辅助开挂力荐教程-真是是真的有挂1、爱来大菠萝挂机器人多个强度级...
    透视ai“拱趴大菠萝挂怎么安装... 透视ai“拱趴大菠萝挂怎么安装”详细透视辅助开挂解说技巧-本来真的是有挂;1、该软件可以轻松地帮助玩...
    黑科技ai代打!微扑克辅助器代... 黑科技ai代打!微扑克辅助器代码(透明挂黑科技)太实锤了好像是真的有挂(2025已更新)(哔哩哔哩)...
    黑科技辅助(wepoke透明黑... 黑科技辅助(wepoke透明黑科技)aapoker有伙牌(透视)透明挂教程(2021已更新)(哔哩哔...
    大神推荐“电脑版海盗来了辅助”... 大神推荐“电脑版海盗来了辅助”太实锤了透视辅助开挂第三方教程-原来是真的有挂;1、这是跨平台的电脑版...
    透视工具“wepoker安装教... 透视工具“wepoker安装教程”详细透视辅助开挂透视教程-好像有挂1、打开软件启动之后找到中间准星...
    黑科技教学!德扑软件高端(透视... 黑科技教学!德扑软件高端(透视)太坑了果然真的是有挂(2024已更新)(哔哩哔哩);1、每一步都需要...
    黑科技辅助(wepoke透明黑... 黑科技辅助(wepoke透明黑科技)红龙扑克辅助器(透视)切实教程(2020已更新)(哔哩哔哩)1、...
    必备教程“天天辅助器下载”太坑... 必备教程“天天辅助器下载”太坑了透视辅助开挂AI教程-切实是有挂1、许多玩家不知道天天辅助器下载辅助...
    透视了解“wpk模拟器是什么”... 透视了解“wpk模拟器是什么”详细透视辅助开挂wpk教程-本来真的是有挂1、打开软件启动之后找到中间...