SignalR Clients.Caller(Clients.Caller.GroupName)不起作用

时间:2018-08-21 10:05:12

标签: asp.net-mvc signalr

我正在浏览SignalR上的教程,无法弄清为什么它不起作用。

这有效:

Clients.Group("TestGroup").displayText(person.Name, person.Message);

这不起作用:

Clients.Group(Clients.Caller.GroupName).displayText(person.Name, person.Message);

javascript代码:

var broadcaster = $.connection.groupHub;
broadcaster.client.displayText = function (name, message) {
    $('#messages').append('<li>' + name + ' said:' + message + '</li>');
};

$.connection.hub.start().done(function () {
    $('#broadcast').off().on("click", function () {

        var group = "GroupTest";       
        broadcaster.server.join(group);
        broadcaster.state.GroupName = group;
        broadcaster.server.broadcastMessage({ Name: $('#name').val(), Message: $('#message').val() });
        broadcaster.server.leave(group);
    });

这对我来说没有太大意义,可能是我缺少或做错的小事。

1 个答案:

答案 0 :(得分:0)

问题通过强制转换为字符串来解决:

Clients.Group(Clients.Caller.GroupName).displayText(person.Name, person.Message);

应为:

Clients.Group((string)Clients.Caller.GroupName).displayText(person.Name, person.Message);

我认为这是因为Clients.Caller和broadcast.state是动态的。 不过,由于错误或SignalR版本不同,我正在阅读的书都没有提及这一点