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

搜索网站怎么做的平面设计

搜索网站怎么做的,平面设计,最早做美食团购的网站,网站设计 做鼠标效果一、WebSocket 基础概念 1. 什么是 WebSocket? 双向通信协议:与 HTTP 的单向请求不同,WebSocket 支持服务端和客户端实时双向通信。 低延迟:适用于聊天室、实时数据推送、在线游戏等场景。 协议标识:ws://&#xff…

一、WebSocket 基础概念

1. 什么是 WebSocket?

  • 双向通信协议:与 HTTP 的单向请求不同,WebSocket 支持服务端和客户端实时双向通信

  • 低延迟:适用于聊天室、实时数据推送、在线游戏等场景。

  • 协议标识ws://(非加密)或 wss://(加密)。


二、环境准备

1. 开发环境

  • .NET 版本:.NET Framework 4.5+ 或 .NET Core 3.1+

  • IDE:Visual Studio 2019+ 或 VS Code

  • 命名空间System.Net.WebSockets


三、服务端实现(ASP.NET Core)

1. 创建 WebSocket 服务端

using System.Net.WebSockets;
using System.Text;public class WebSocketHandler
{public async Task HandleWebSocket(HttpContext context){// 1. 接受 WebSocket 连接请求WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();// 2. 接收客户端消息var buffer = new byte[1024];WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);while (!result.CloseStatus.HasValue){// 3. 解析消息内容string message = Encoding.UTF8.GetString(buffer, 0, result.Count);Console.WriteLine($"收到消息: {message}");// 4. 回复客户端(示例:原样返回消息)await webSocket.SendAsync(new ArraySegment<byte>(buffer, 0, result.Count),result.MessageType,result.EndOfMessage,CancellationToken.None);// 继续接收下一条消息result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);}// 5. 关闭连接await webSocket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None);}
}
 

2. 配置 ASP.NET Core 中间件

// Program.cs
app.UseWebSockets(); // 启用 WebSocket 中间件app.Map("/ws", async context =>
{if (context.WebSockets.IsWebSocketRequest){var handler = new WebSocketHandler();await handler.HandleWebSocket(context);}else{context.Response.StatusCode = 400;await context.Response.WriteAsync("请使用 WebSocket 协议访问");}
});
 

四、客户端实现(控制台应用)

1. 客户端连接代码

using System.Net.WebSockets;
using System.Text;public class WebSocketClient
{public async Task ConnectAsync(string url){ClientWebSocket webSocket = new ClientWebSocket();// 1. 连接到服务端await webSocket.ConnectAsync(new Uri(url), CancellationToken.None);Console.WriteLine("已连接到服务端");// 2. 发送消息string message = "Hello, WebSocket!";byte[] buffer = Encoding.UTF8.GetBytes(message);await webSocket.SendAsync(new ArraySegment<byte>(buffer), WebSocketMessageType.Text, true, CancellationToken.None);// 3. 接收服务端响应buffer = new byte[1024];WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);string response = Encoding.UTF8.GetString(buffer, 0, result.Count);Console.WriteLine($"收到回复: {response}");// 4. 关闭连接await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "关闭连接", CancellationToken.None);}
}
 

2. 调用客户端

// Main 方法
static async Task Main(string[] args)
{WebSocketClient client = new WebSocketClient();await client.ConnectAsync("ws://localhost:5000/ws");
}
 

五、运行测试步骤

  1. 启动服务端

    dotnet run
     
  2. 运行客户端
    客户端控制台输出:

    已连接到服务端
    收到回复: Hello, WebSocket!
     

六、核心 API 说明

方法/属性说明
AcceptWebSocketAsync()服务端接受 WebSocket 连接请求
SendAsync()发送消息(支持文本和二进制数据)
ReceiveAsync()异步接收消息
CloseAsync()正常关闭连接
WebSocketMessageType.Text指定消息类型为文本

七、注意事项

  1. 跨域问题
    在 ASP.NET Core 中配置 CORS:

    services.AddCors(options => options.AddPolicy("AllowAll", builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()));
     
  2. 心跳检测
    添加心跳机制防止连接超时:

    webSocket.Options.KeepAliveInterval = TimeSpan.FromSeconds(30);
     
  3. 异常处理
    使用 try-catch 捕获 WebSocketException

    try {// WebSocket 操作代码
    } catch (WebSocketException ex) {Console.WriteLine($"连接异常: {ex.Message}");
    }
     
  4. 性能优化

    • 使用 ArrayPool<byte> 重用缓冲区

    • 多线程处理高并发连接

http://www.dtcms.com/wzjs/79406.html

相关文章:

  • 怎么在网站做推广和宣传如何建网站要什么条件
  • 苏州网站推广排名深圳百度seo代理
  • saas建站 cms长沙百度网站快速排名
  • wordpress搜索间隔时间seo综合查询中的具体内容有哪些
  • 旅行网站建设论文摘要seo关键词搜索优化
  • wordpress post slug codex北京seo网站推广
  • 广州建造网站公司网站推广优化怎样
  • 有需求或做任务赚钱的网站么网站权重查询工具
  • 淄博网站建设 华夏国际互联网广告推广公司
  • 做网站设计管理需要什么知识北京百度推广优化公司
  • 有了网站怎么做app吗网店推广网站
  • 苏州找工作cpu游戏优化加速软件
  • 百度商桥怎么添加到网站百度指数网页版
  • 高清做网站插图短视频营销的发展趋势
  • 做动画网站微信社群营销怎么做
  • 新站整站优化站长工具seo综合查询访问
  • 公司制作网站怎么做谷歌网站优化
  • 浏览网站时弹出的广告是谁给做的吉林seo管理平台
  • 类似享设计的网站广告软文200字
  • 网站开发部门工作职责搜狗网址大全
  • 糖果果屋网站建设规划书视频推广
  • 大连哪个公司做网站开发的百度商业平台官网
  • 网站建设需要考虑因素网络服务包括哪些内容
  • wordpress置顶文章 调用网站seo服务商
  • 免费的独立站建站工具推广方案范例
  • wordpress 3.9.12天津做优化好的公司
  • 网站建设 小程序十大经典事件营销案例分析
  • 私人让做彩票网站吗百度指数怎么分析
  • 内蒙古兴泰建设集团信息化网站seo管理与优化期末试题
  • 有哪些网站是拐角型百度知道网页版登录入口