Skip to content

Commit c5cc5f7

Browse files
committed
doc: 更新扩展方法文档
1 parent 3b2b55b commit c5cc5f7

File tree

2 files changed

+15
-16
lines changed

2 files changed

+15
-16
lines changed

src/BootstrapBlazor.Server/Components/Samples/Sockets/Adapters.razor

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,17 @@
4444
<li>不使用 <b>数据适配器</b> 要分两次接收才能接收完整</li>
4545
<li>使用 <b>数据适配器</b> 一次即可接收完整数据包</li>
4646
</ul>
47-
<Pre>private readonly DataPackageAdapter _dataAdapter = new()
48-
{
49-
// 数据适配器内部使用固定长度数据处理器
50-
DataPackageHandler = new FixLengthDataPackageHandler(12)
51-
};
47+
<Pre>// 数据适配器内部使用固定长度数据处理器
48+
private readonly DataPackageAdapter _dataAdapter = new(new FixLengthDataPackageHandler(12));
5249

53-
_dataAdapter.ReceivedCallBack += async Data =>
50+
_dataAdapter.ReceivedCallBack = async Data =>
5451
{
5552
// 此处接收到的数据 Data 为完整响应数据
5653
};</Pre>
54+
<Pre>// 实战中可以使用 ITcpSocketClient 扩展方法 SetDataPackageAdapter 简化代码
55+
_client.SetDataPackageAdapter(_dataAdapter, UpdateReceiveLog);</Pre>
56+
57+
<p>本例中使用的模拟服务端代码如下:</p>
5758

5859
<div class="row form-inline g-3">
5960
<div class="col-12">

src/BootstrapBlazor.Server/Components/Samples/Sockets/Adapters.razor.cs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,7 @@ public partial class Adapters : IDisposable
2525
private readonly CancellationTokenSource _connectTokenSource = new();
2626
private readonly CancellationTokenSource _sendTokenSource = new();
2727
private readonly CancellationTokenSource _receiveTokenSource = new();
28-
private readonly DataPackageAdapter _dataAdapter = new()
29-
{
30-
DataPackageHandler = new FixLengthDataPackageHandler(12)
31-
};
28+
private readonly DataPackageAdapter _dataAdapter = new(new FixLengthDataPackageHandler(12));
3229
private bool _useDataAdapter = true;
3330

3431
/// <summary>
@@ -46,13 +43,14 @@ protected override void OnInitialized()
4643
// 设置本地使用的 IP地址与端口
4744
options.LocalEndPoint = new IPEndPoint(IPAddress.Loopback, 0);
4845
});
46+
47+
// 此处代码分开写是为了判断 _useDataAdapter 参数
4948
_client.ReceivedCallBack += OnReceivedAsync;
49+
_dataAdapter.ReceivedCallBack = UpdateReceiveLog;
50+
51+
// 实战中可以通过下面一句话设置数据适配器与回调方法
52+
// _client.SetDataPackageAdapter(_dataAdapter, UpdateReceiveLog);
5053

51-
_dataAdapter.ReceivedCallBack += async data =>
52-
{
53-
// 直接处理接收的数据
54-
await UpdateReceiveLog(data);
55-
};
5654
}
5755

5856
private async Task OnConnectAsync()
@@ -102,7 +100,7 @@ private async ValueTask OnReceivedAsync(ReadOnlyMemory<byte> data)
102100
}
103101
}
104102

105-
private async Task UpdateReceiveLog(ReadOnlyMemory<byte> data)
103+
private async ValueTask UpdateReceiveLog(ReadOnlyMemory<byte> data)
106104
{
107105
var payload = Encoding.UTF8.GetString(data.Span);
108106
var body = BitConverter.ToString(data.ToArray());

0 commit comments

Comments
 (0)