我正在浏览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);
});这对我来说没有多大意义,可能是我遗漏了一些小东西,或者做错了什么。
发布于 2018-08-21 22:45:37
这个问题可以通过转换为string来解决:
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版本之间的差异
https://stackoverflow.com/questions/51946270
复制相似问题