Blazor服务器Javascript Websocket回调到c#注入服务不起作用

Blazor服务器Javascript Websocket回调到c#注入服务不起作用,javascript,blazor,javascript-interop,Javascript,Blazor,Javascript Interop,我有一个blazor服务器应用程序,它调用注入服务调用javascript中的web套接字来获取一些数据。我希望web套接字将数据返回到服务上的c#实例回调。c#回调在javascript方法中可以正常工作,但在任何websocket回调(例如onmesse、onerror、onclose等)中都不能正常工作。没有错误,只是没有数据 我已经尝试将实例设置为全局javascript,甚至在调用类中设置为静态值,但仍然不起作用。我一直在谷歌上搜索,尝试了每一个建议,但还是没有成功 以下是索引页: @

我有一个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>