前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >.NET9 PreView RC1新增的库

.NET9 PreView RC1新增的库

作者头像
JusterZhu
发布2025-01-23 20:32:25
发布2025-01-23 20:32:25
6100
代码可运行
举报
文章被收录于专栏:JusterZhuJusterZhu
运行总次数:0
代码可运行

前言

.NET9 RC1如期发布了,这个版本的运行时基本上定型了。需要微调的是托管方向的一些细节问题,比如SDK API最后的增加。

  1. WebSocket新增的一个非常有用的功能。这个新的功能允许 WebSocket 客户端定期发送 Ping 请求,如果服务器未在指定时间内响应时终止连接。这对于保持连接健康以及避免长时间空闲的连接非常有用。
  2. 新增的压缩功能,两种新的压缩选项:ZLib 和 Brotli。用于特定算法的压缩级别和压缩策略,提供更精细的控制压缩设置。

WebSocket

代码:

代码语言:javascript
代码运行次数:0
复制
//实例化一个websocket
using var cws = new ClientWebSocket();
// 设置每隔 5 秒发送一个 Ping 请求
cws.Options.KeepAliveInterval = TimeSpan.FromSeconds(5);

 // 如果 1 秒内请求的服务端没有响应,则终止连接
cws.Options.KeepAliveTimeout = TimeSpan.FromSeconds(1);

 Uri serverUri = new Uri("https://www.baidu.com");
 var cancellationToken = new CancellationToken();

// 连接 WebSocket 服务器
 await cws.ConnectAsync(serverUri, cancellationToken);

以上就是WebSocket的操作例子,KeepAliveInterval 属性用于设置每隔5秒钟从客户端往服务器发送一个ping请求。KeepAliveTimeout 属性则是检查这个客户端发送的ping请求服务端是否在一定的时间内有响应,这里的时间设置的是1秒。

本例即是客户端每隔5秒钟往服务器端发送一个ping请求,如果ping请求在1秒钟内没有响应的话,就终止这个链接。

压缩

ZLib 和 Brotli,分别添加了用于特定算法的压缩级别和压缩策略的设置。

CompressionLevel设置压缩级别,CompressionStrategy: 设置压缩策略

Zlib代码:

代码语言:javascript
代码运行次数:0
复制
private MemoryStream CompressStream(Stream uncompressedStream)
{
    var compressorOutput = new MemoryStream();
    using var compressionStream = new ZLibStream(compressorOutput, new ZLibCompressionOptions() { CompressionLevel = 6, CompressionStrategy = ZLibCompressionStrategy.HuffmanOnly });
    uncompressedStream.CopyTo(compressionStream);
    compressionStream.Flush();

    return compressorOutput;
}

Brotli代码:

代码语言:javascript
代码运行次数:0
复制
private MemoryStream CompressStream(Stream uncompressedStream)
{
       var compressorOutput = new MemoryStream();
       using var compressionStream = new ZLibStream(compressorOutput, new BrotliCompressionOptions() { CompressionLevel = 6, CompressionStrategy = BrotliCompressionOptions.HuffmanOnly });
       uncompressedStream.CopyTo(compressionStream);
       compressionStream.Flush();
       return compressorOutput;
}

结尾

WebSocket的新增功能和压缩对于级别和策略的控制,这样做的目的:节省内存,简约代码,提高程序效率。.NET9的性能继续持续性上升。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JusterZhu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WebSocket
  • 压缩
  • Brotli代码:
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档