3

我已经开始研究 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”失败(没有错误)。如果我颠倒初始化顺序,当然会发生相反的情况。

我错过了什么?

4

1 回答 1

3

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

于 2012-02-14T10:40:17.933 回答