我正在遵循本指南from MS。我创建了一个MVC Core 2.0应用程序并添加了包参考
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.0.0-alpha1-final" />
我配置了Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSignalR();
}
和
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.UseSignalR(routes =>
{
routes.MapHub<Statistics>("statistics");
});
...
}
这是我的StatisticsHub:
public class Statistics : Hub
{
public Task Send(string message)
{
return Clients.All.InvokeAsync("Send", message);
}
}
从我的HomeController
我有一个返回此视图的索引操作:
<script src="js/signalr-client-1.0.0-alpha2-final.js"></script>
<script>
let connection = new signalR.HubConnection('/statistics');
connection.on('send', data => {
console.log(data);
});
connection.start()
.then(() => connection.invoke('send', 'Hello'));
</script>
我也尝试过包括
<script src="js/signalr-clientES5-1.0.0-alpha2-final.js"></script>
客户,但没有区别。
我启动应用程序,firefox启动,这就是控制台中发生的情况: Errors
我一步一步地按照指南操作,我不知道为什么它没有连接。
答案 0 :(得分:0)
尝试以下
[HubName("Statistics")]
public class Statistics : Hub
{
public Task Send(string message)
{
return Clients.All.InvokeAsync("Send", message);
}
}
脚本
<script>
$.connection.hub.url = "http://localhost:xxxx/signalr";
var statisticsHub = $.connection.Statistics;
</script>
或者
<script>
let connection = new signalR.HubConnection('http://localhost:xxxx');
connection.on('send', data => {
console.log(data);
});
connection.start()
.then(() => connection.invoke('send', 'Hello'));
</script>
其中“xxxx:是端口号