从JavaScript客户端连接到ASP.NET Core SignalR服务器

3

我有一个asp.net core web api服务器,正在流式传输一个signalr信号。对于asp.net客户端,它可以正常工作。我正在尝试使用下面显示的代码建立连接,但它只能连接到非核心服务器,不能与核心服务器配合工作。

//the hub class in the server code
[EnableCors("AllowAllOrigins")]
[HubName("LogNotifierHub")]
public class LogNotifierHub : Hub
{
   //methods defined here 
}

路由的启动代码:

 app.UseSignalR(routes =>
            {
                routes.MapHub<LogNotifierHub>("/NotifierHub");
            });

Javascript 代码用于建立连接。

var hubUrl ="http://localhost:52273/logNotifierHub";

var connection = $.hubConnection(hubUrl, { useDefaultPath: true});
var hub = connection.createHubProxy("LogNotifierHub");

hub.on('SendStreamInit', function(data){
            console.log( data)
})                  

connection.start()
   .done(function(){ console.log(' connected!! connection ID=' + connection.id); })
   .fail(function(error){ console.log('Could not connect!!' + error); }); 

是的,@Stefan,它不会抱怨分号,我唯一遇到的错误是在协商请求期间出现错误。我已经设置了所有的CORS设置以允许所有来源。 - undefined
你有遇到任何错误吗?错误是什么? - undefined
1
在 JavaScript 中,分号 ; 是可以省略的,但有时候推断机制会出错。 - undefined
请求协商过程中发生错误。这是错误信息 @Pavan - undefined
1
它将仅连接到非核心部分,以连接到核心部分,请根据微软的指南使用Node或TypeScript。请阅读https://blogs.msdn.microsoft.com/webdev/2017/09/14/announcing-signalr-for-asp-net-core-2-0/。 - undefined
显示剩余5条评论
1个回答

6

你不能混合使用不同版本的SignalR服务器和客户端。如果你在服务器上使用了core,那么在客户端上也必须使用它。

来自MSDN SignalR alpha博客文章

ASP.NET Core的SignalR与以前的SignalR版本不兼容。这意味着你不能使用旧的服务器与新的客户端或旧的客户端与新的服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接