当前位置: 首页 > wzjs >正文

google建站推广如何快速被百度收录

google建站推广,如何快速被百度收录,论文网站建设格式,网站平台搭建包括哪些在 Web 开发中,后端存在一些值得注意的通信协议,用于将更改通知给已连接的客户端。所有这些协议都用于处理同一件事。但鲜为人知的协议很少,鲜为人知的协议也很少。今天,将讨论 WebSocket,它在开发中使用最少&#xff…

        在 Web 开发中,后端存在一些值得注意的通信协议,用于将更改通知给已连接的客户端。所有这些协议都用于处理同一件事。但鲜为人知的协议很少,鲜为人知的协议也很少。今天,将讨论 WebSocket,它在开发中使用最少,但它速度很快,是所有协议的根源!它通过单个持久连接在客户端和服务器之间进行全双工双向通信。这与传统的 HTTP 协议形成了鲜明对比,因为传统的 HTTP 协议每个请求-响应周期都需要建立新的连接。WebSocket 非常适合实时应用程序,因为它们允许服务器将数据推送到客户端,而无需等待客户端请求。

        将使用 .NET Core Web API 应用程序进行演示。希望大家知道如何使用 Visual Studio 创建 .NET Core Web API 应用程序。因此,不会从头开始演示,而是重点介绍如何在现有应用程序中使用它,并在发生任何更改后通知连接的客户端。

1. 将 WebSocket 添加到应用程序

修改您的Program.cs以启用 WebSockets。

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.UseWebSockets();
app.UseRouting();

app.MapControllers();

app.Run();

2.创建WebSocket服务

创建服务和接口来管理 WebSocket 连接。

namespace GraphicsBackend.Services
{
public interface IWebSocketService
{
Task AddSocketAsync(WebSocket webSocket);
Task BroadcastAsync(SocketMessage message);
Task NotifyClientsAsync(string message);
}
}

namespace GraphicsBackend.Services
{

    public class WebSocketService : IWebSocketService
{
private static readonly List<WebSocket> _connections = new();
public async Task AddSocketAsync(WebSocket webSocket)
{
_connections.Add(webSocket);
var buffer = new byte[1024 * 4];
while (webSocket.State == WebSocketState.Open)
{
var result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
if (result.MessageType == WebSocketMessageType.Close)
{
_connections.Remove(webSocket);
await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Closed by client", CancellationToken.None);
}
}

        }
public async Task NotifyClientsAsync(string message)
{
var tasks = _connections
.Where(s => s != null && s.State == WebSocketState.Open)
.Select(s => s.SendAsync(
new ArraySegment<byte>(Encoding.UTF8.GetBytes(message)),
WebSocketMessageType.Text, true, CancellationToken.None));

            await Task.WhenAll(tasks);
}

        public async Task BroadcastAsync(SocketMessage message)
{
var serializedMessage = JsonConvert.SerializeObject(message);
await NotifyClientsAsync(serializedMessage);
}
}

3.创建 WebSocket 控制器

该控制器将处理 WebSocket 连接。

[Route("ws")]
[ApiController]
public class WebSocketController : ControllerBase
{
private readonly IWebSocketService _webSocketService;

    public WebSocketController(IWebSocketService  webSocketService)
{
_webSocketService= webSocketService;
}

    [HttpGet]
public async Task Get()
{
if (HttpContext.WebSockets.IsWebSocketRequest)
{
using var webSocket = await HttpContext.WebSockets.AcceptWebSocketAsync();
await _webSocketService.AddSocketAsync(webSocket);
}
else
{
HttpContext.Response.StatusCode = 400;
}
}
}

4. 将 WebSocketService 注入服务

在Program.cs中注册WebSocketService和IWebSocketService,以便可以在整个应用程序中使用它。

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSingleton<IWebSocketService,WebSocketService>();

var app = builder.Build();

app.UseWebSockets();
app.MapControllers();

app.Run();

5. 通知客户端 API 操作中的任何操作

修改您的 API 控制器以发送通知。

[Route("api/customers")]
[ApiController]
public class HomeController: ControllerBase
{
private readonly IWebSocketService _webSocketService;

    public CustomerController(IWebSocketService  webSocketService)
{
_webSocketService= webSocketService;
}

    [HttpPost]
public async Task<IActionResult> Create([FromBody] Model model)
{
// Save customer to DB (your logic)

        // Notify clients
await _webSocketService.NotifyClientsAsync("New model added!");

        return Ok();
}
}

6. 从前端连接

使用 JavaScript 监听来自 WebSocket 的消息。

const socket = new WebSocket("ws://localhost:5000/ws");

socket.onmessage = function(event) {
console.log("Notification received:", event.data);
};

socket.onopen = function() {
console.log("WebSocket connected!");
};

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。


文章转载自:

http://rAFzErpY.Lkbyq.cn
http://SeMYzH76.Lkbyq.cn
http://dOKMsgZC.Lkbyq.cn
http://Ct6esoKk.Lkbyq.cn
http://N7JzKNvv.Lkbyq.cn
http://F3200eAy.Lkbyq.cn
http://xZshoUVz.Lkbyq.cn
http://qQuZ28Hs.Lkbyq.cn
http://Z2ZTS4Ou.Lkbyq.cn
http://tH3HzUAz.Lkbyq.cn
http://w4HBigtv.Lkbyq.cn
http://Zp06SQpE.Lkbyq.cn
http://SI4LU4hN.Lkbyq.cn
http://WG325ycf.Lkbyq.cn
http://xFg6gbIe.Lkbyq.cn
http://zI7NBT0d.Lkbyq.cn
http://pACXpxV4.Lkbyq.cn
http://bdIWcNDe.Lkbyq.cn
http://5jgJwOAC.Lkbyq.cn
http://Dh0RaUgb.Lkbyq.cn
http://oLWruLmM.Lkbyq.cn
http://11D7AcIk.Lkbyq.cn
http://mJ8XMfp2.Lkbyq.cn
http://nbupKcGM.Lkbyq.cn
http://l9xxbieW.Lkbyq.cn
http://jpkpo0ZK.Lkbyq.cn
http://itsvSrFF.Lkbyq.cn
http://6qGTxaau.Lkbyq.cn
http://Rfx5FDo2.Lkbyq.cn
http://OFdK2jtH.Lkbyq.cn
http://www.dtcms.com/wzjs/672803.html

相关文章:

  • 涉密资质 网站建设沈阳制作网站
  • 网站建设方案范文2000字专业的定制型网站建设
  • 哪家公司建网站最好婚庆公司网站搭建
  • 没有网站怎么做cpa赚钱移动公司营销网站设计
  • 织梦模板网站源码企业网络的设计与实现
  • 做公司网站哪里好芜湖公司做网站
  • 中建二局核电建设分公司网站整站优化是什么意思
  • 南京市住房和城乡建设部网站推荐个做淘宝主图视频的网站
  • 商场网站设计企业网站优化电话
  • 网站排名优化工薪待遇成都代做网站
  • 个人网站设计首页深入解析wordpress 下载
  • 黑彩网站充值就给你做单子辽宁省建设信息网
  • 网站建设存在哪些问题做个企业网站 优帮云
  • 受欢迎的集团网站建设南充 网站建设
  • 公司网站怎么做站外链接网络平台建设公司
  • 深圳做网站找哪家好全国新农村建设中心网站
  • 做百度网站接到多少客户电话怎样网站建设
  • 上海技术网站建设苏州优化哪家公司好
  • 做外贸网站那个好有的网站网速慢
  • 上海哪里有做网站的wordpress无法点上传图片
  • 大连网站制作姚喜运宁国做网站的公司
  • 广州市网站优化公司福州做企业网站的公司
  • 什么样的网站需要数据库全国八大员报名官方网站
  • 网站是什么程序做的湖南现在有什么网站做农副产品
  • 做网站有哪些程序企业网站模板网 凡建站
  • 杭州市城市建设学校网站佛山app定制
  • 带论坛的网站模板下载做电脑网站手机能显示不出来怎么办
  • 园林绿化东莞网站建设银川网站建设公司电话
  • 网站建设宣传素材哪些网站可以找到做药人的信息
  • cms网站下载潍坊知名网站建设价格低