Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 信号员通过程序<;T>;从js客户端到hub_Javascript_C#_Signalr_Signalr Hub - Fatal编程技术网

Javascript 信号员通过程序<;T>;从js客户端到hub

Javascript 信号员通过程序<;T>;从js客户端到hub,javascript,c#,signalr,signalr-hub,Javascript,C#,Signalr,Signalr Hub,是否可以将IProgress从js客户端传递到C#Signal hub?我想做的是: 在轮毂侧: public class ProgressHub : Hub<IProgressHub> { public async Task Foo(string jobId, IProgress<int> progress) { Console.WriteLine($"Started monitoring {jobId}");

是否可以将
IProgress
从js客户端传递到C#Signal hub?我想做的是:

在轮毂侧:

public class ProgressHub : Hub<IProgressHub>
{
    public async Task Foo(string jobId, IProgress<int> progress)
    {
        Console.WriteLine($"Started monitoring {jobId}");

        for (int i = 0; i < 100; i++)
        {
            await Task.Delay(TimeSpan.FromSeconds(1)); // Simulate some work
            progress.Report(i);            
        }        
    }
}

public interface IProgressHub
{
    Task Foo(string jobId, Progress<int> progress);
}

signarhub上的方法被调用,但IProgress总是以null结束。

我刚刚在中找到答案

在客户端和中心(通常称为HubState)之间传递任意状态的功能已被删除,以及对进度消息的支持。目前没有对应的hub代理

最后,我决定执行以下操作:

在集线器端:
RegisterToProgress([…])
将在内部调用将消息发送到客户端的
SendProgress([…])

在js客户端:调用
RegisterToProgress
并收听
SendProgress
消息

connection
    .invoke("Foo", "this-is-job-id", progressPercentage => console.log(`Processed ${value}%`))
    .then(() => console.log("Processing done"));