Skip to content

Commit 8291492

Browse files
committed
wip: 临时提交
1 parent 647e05f commit 8291492

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

src/components/BootstrapBlazor.Term/Components/Term.razor.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,12 +155,20 @@ private async Task LoopRead(Stream stream)
155155
var buffer = memoryOwner.Memory;
156156
while (_cancellationTokenSource is { IsCancellationRequested: false })
157157
{
158-
var length = await stream.ReadAsync(buffer, _cancellationTokenSource.Token);
159-
if (length == 0)
158+
if (stream is { CanRead: true })
159+
{
160+
var length = await stream.ReadAsync(buffer, _cancellationTokenSource.Token);
161+
if (length == 0)
162+
{
163+
await Task.Delay(50);
164+
continue;
165+
}
166+
await Write(buffer.Slice(0, length).ToArray());
167+
}
168+
else
160169
{
161170
break;
162171
}
163-
await Write(buffer.Slice(0, length));
164172
}
165173
}
166174
catch (OperationCanceledException)
@@ -179,7 +187,7 @@ private async Task LoopRead(Stream stream)
179187
/// </summary>
180188
/// <param name="data"></param>
181189
[JSInvokable]
182-
public async Task OnDataAsync(byte[] data)
190+
public async Task TriggerReceiveDataAsync(byte[] data)
183191
{
184192
if (_stream is { CanWrite: true })
185193
{
@@ -200,7 +208,7 @@ public async Task OnDataAsync(byte[] data)
200208
/// <param name="rows"></param>
201209
/// <param name="cols"></param>
202210
[JSInvokable]
203-
public async Task OnResizeAsync(int rows, int cols)
211+
public async Task TriggerResizeAsync(int rows, int cols)
204212
{
205213
Rows = rows;
206214
Columns = cols;

src/components/BootstrapBlazor.Term/Components/Term.razor.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,13 @@ export async function init(id, invoke, options) {
2828

2929
const encoder = new TextEncoder();
3030
term.onData(data => {
31-
invoke.invokeMethodAsync("OnDataAsync", encoder.encode(data));
31+
el.term.write(data);
32+
console.log(data);
33+
//invoke.invokeMethodAsync("TriggerReceiveDataAsync", encoder.encode(data));
3234
});
3335

3436
term.onResize(size => {
35-
invoke.invokeMethodAsync("OnResizeAsync", size.rows, size.cols);
37+
invoke.invokeMethodAsync("TriggerResizeAsync", size.rows, size.cols);
3638
});
3739

3840
el.term = term;
@@ -44,7 +46,7 @@ export async function init(id, invoke, options) {
4446
fitAddon.fit();
4547
const dims = fitAddon.proposeDimensions();
4648
if (dims) {
47-
invoke.invokeMethodAsync("OnResizeAsync", dims.rows, dims.cols);
49+
invoke.invokeMethodAsync("TriggerResizeAsync", dims.rows, dims.cols);
4850
}
4951
} catch (e) { }
5052
};

0 commit comments

Comments
 (0)