2
4

1 回答 1

5

我目前无法调试您的代码,但我认为您应该考虑两个可能的问题。

1)您在启动集线器功能中错过了“$.connection.hub”。当您从服务器端调用接收方法到客户端时,您需要添加“connection.client.received”。它应该如下所示:

$(function () {
    var connection = $.connection('/echo');

    connection.client.received(function (data) {
        $('#messages').append('<li>' + data + '</li>');
    });

    $.connection.hub.start().done(function () {
        $("#broadcast").click(function () {
            connection.send($('#msg').val());
        });
    });

});

2)您需要映射您的持久连接。我相信 signalR 1.x 应该是这样的:

RouteTable.Routes.MapConnection<MyConnection>("echo", "/echo");

但在 SignalR 2.0 中,您需要在集线器 Startup 类中执行以下操作。下面只是一个例子。

public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR<MyConnection>("/echo");
        }
于 2013-11-02T17:27:15.527 回答