【发布时间】:2018-06-16 22:22:00
【问题描述】:
我有一个在 http://localhost:8090/ 上运行的 Owin 自托管 API。 我使用以下代码创建了一个 signalR 集线器:
app.UseCors(CorsOptions.AllowAll); //Inside Startup.cs
app.MapSignalR(); //Inside Startup.cs
//Inside own class file
public class SensorHub: Hub
{
public void Send(string message)
{
Console.WriteLine("Send called with message argument: {0}", message);
Clients.All.addMessage(message);
}
}
我还制作了另一个 C# 客户端来测试我的 signalR 集线器,我从集线器收到了响应,所以我认为它可以正常工作并且运行良好。见以下代码:
//My working C# client
static void Main(string[] args)
{
ServicePointManager.DefaultConnectionLimit = 10;
var url = "http://localhost:8090/signalr";
var hub = new HubConnection(url);
var proxy = hub.CreateHubProxy("SensorHub");
proxy.On("addMessage", message => Console.WriteLine("Data received: " + message));
// Start hub connection
Console.WriteLine("Starting hub connection at: {0}", url);
hub.Start().Wait();
Console.WriteLine("Hub connected with transport: {0}", hub.Transport.Name);
// Call hub
var list = new List<string>
{
"value1",
"value2",
"value3"
};
foreach (var value in list)
{
Console.WriteLine("Sending data to hub connection: {0}", value);
proxy.Invoke("Send", value);
}
Console.Read();
}
我想与我的后端传感器集线器和我的 Angular 网站建立连接。我安装了@aspnet/signalr-client 包。在我的角度代码下方:
//My failing angular client
ngOnInit() {
let connection = new HubConnection('http://localhost:8090/signalr/sensorhub');
connection.on('addMessage', data => {
console.log(data);
});
connection.start().then(() => console.log('started'));
}
当我通过connection.Start() 行后,我会收到“400 Bad Request error”,其中包含以下消息:协议错误:未知传输。
注意:我不使用 .NET Core! 有任何想法吗?
【问题讨论】:
标签: c# angular asp.net-web-api signalr angular-cli