Can't get SignalR work with two Hubs

本文关键字:work with two Hubs SignalR get Can | 更新日期: 2023-09-27 18:24:45

我已经开始挖掘SignalR 0.4,但遇到了一个问题。我想在同一页上有两个不同的集线器,为了保持简单,它们是:

public class ChatHub : Hub
{
    public void Send(string message) 
    {
        Clients.addMessage(message);
    }
}
public class Chat2Hub : Hub
{
    public void Send2(string message) 
    {
        Clients.addMessage2(message);
    }
}

这是我的客户代码:

function initChat() {
    var chat = $.connection.chat;
    chat.addMessage = function (message) {...};
    $('.send-cmd').click(function () {...});
    return $.connection.hub.start();
}
function initChat2() {
    var chat2 = $.connection.chat2;
    chat2.addMessage2 = function (message) {...};
    $('.send2-cmd').click(function () {...});
    return $.connection.hub.start();
}
$(function() {
    initChat().done(function() {
        initChat2();
    });
});

很简单,但我无法让它们一起工作。在本例中,"chat"正常工作,而"chat2"失败(没有错误)。如果我颠倒初始化的顺序,当然会发生相反的情况。

我错过了什么?

Can't get SignalR work with two Hubs

为什么要启动两次集线器连接。所有集线器都有一个连接,所以只需要调用$.connection.hub.start()一次。