Blazor服务器Javascript Websocket回调到c#注入服务不起作用
我有一个blazor服务器应用程序,它调用注入服务调用javascript中的web套接字来获取一些数据。我希望web套接字将数据返回到服务上的c#实例回调。c#回调在javascript方法中可以正常工作,但在任何websocket回调(例如onmesse、onerror、onclose等)中都不能正常工作。没有错误,只是没有数据 我已经尝试将实例设置为全局javascript,甚至在调用类中设置为静态值,但仍然不起作用。我一直在谷歌上搜索,尝试了每一个建议,但还是没有成功 以下是索引页:Blazor服务器Javascript Websocket回调到c#注入服务不起作用,javascript,blazor,javascript-interop,Javascript,Blazor,Javascript Interop,我有一个blazor服务器应用程序,它调用注入服务调用javascript中的web套接字来获取一些数据。我希望web套接字将数据返回到服务上的c#实例回调。c#回调在javascript方法中可以正常工作,但在任何websocket回调(例如onmesse、onerror、onclose等)中都不能正常工作。没有错误,只是没有数据 我已经尝试将实例设置为全局javascript,甚至在调用类中设置为静态值,但仍然不起作用。我一直在谷歌上搜索,尝试了每一个建议,但还是没有成功 以下是索引页: @
@page "/"
@inject BlazorJavaScriptCallback.IService1 _service1
<h1>Hello, world!</h1>
<p>And the answer back from the web service is @Message</p>
@code {
protected string Message {get; set;}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
Message = await _service1.CallWebService();
StateHasChanged();
}
}
}
您需要在ConfigureServices中将此项添加到启动中:
services.AddScoped<IService1, Service1>();
services.addScope();
您需要将以下内容添加到_Hosts.cshtml中:
<script src="~/scripts/Javascript.js"></script>
编辑:当我在没有注入服务的情况下尝试此操作时(将调用和回调放在razor页面中),它会起作用。嗯
services.AddScoped<IService1, Service1>();
<script src="~/scripts/Javascript.js"></script>