我正在浏览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);
});
这对我来说没有太大意义,可能是我缺少或做错的小事。
答案 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版本不同,我正在阅读的书都没有提及这一点