Ron*_*on 5 asp.net signalr signalr-hub signalr.client angular
我一直坚持这个问题超过一个星期了,找不到解决方法,因为我对.NET和角度环境都很陌生.此外,我无法在互联网上找到适合我的问题的解决方案.
我有一个服务,通过REST api每秒向我发送数据.我想在客户端中检索此数据,而无需连续重新加载整个页面.因此我选择了SignalR.
到目前为止一切正常并且与集线器的连接已建立.但是当我尝试从集线器调用该方法时,我收到一条错误消息:
Invoking 'GetPerformanceSnapshotData' failed. Rejecting promise...
Promise rejected.
ErrorObservable {_isScalar: false, error: Error: An error occurred while sending the request.
at Object.error (http://localhost:4200/scrip......, scheduler: undefined}
error: Error. An error occurred while sending the request: An error occurred while sending the request. at Object.error (http://localhost:4200/...)...
Run Code Online (Sandbox Code Playgroud)
这是我在客户端上的调用方法:
public GetPerformanceSnapshotData() {
this.connect().then((connection) => {
this.invoke("GetPerformanceSnapshotData").then((data: string) => {
console.log(data);
}).catch(error => {
this.dialogService.showError(error);
return Observable.throw(error);
});
}).catch(error => {
this.dialogService.showError(error);
return Observable.throw(error);
});
}
}
Run Code Online (Sandbox Code Playgroud)
服务器端方法如下所示:
namespace ...
{
using System.Threading.Tasks;
using System.Net.Http;
using Microsoft.AspNet.SignalR;
public class PerformanceSnapshotHub : Hub
{
public async Task<string> GetPerformanceSnapshotData()
{
using (var client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true }))
{
var response = await client.GetAsync("http://localhost:8080/api/PerformanceSnapshot");
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白什么是错的.有任何想法吗?
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |