建立连接时SignalR Core调用函数

SignalR Core call function when connection is established

当我的客户端成功连接到集线器时,我希望客户端立即加入一个组。我的集线器中有一个方法可以做到这一点,我只需要一个事件处理程序来建立连接,就像

connection.start().done(
    function () {
        connection.invoke('JoinGroup', 'GroupName');
    });

在 SignalR 中用于普通 ASP.Net。

我可以这样做吗?还是我必须设置一个计时器,以便在 start(); 调用后 x 秒后执行此操作?

编辑:

我发现我可以做到

connection.start(
    function (){
            connection.invoke('JoinGroup', 'GroupName');
    }
);

但它告诉我它 Cannot send data if the connection is not in the 'Connected' State.

做什么?

由于版本不匹配等原因,SignalR 非常困难

请参阅以下文章:https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-2.1&tabs=visual-studio

其中有一个部分指定了如何启动(并等待建立连接):

var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();
connection.start().then(() => {
  //try some stuff here :)
})
.catch(function (err) {
  //failed to connect
  return console.error(err.toString());
});

javascript 客户端使用的承诺必须是 resolved/rejected 才能使用。 另一种选择是包装在异步方法中并等待调用(不确定这是否能正常工作)。如:

await connection.start();
//connection should be started now. beware of exceptions though