假设我有论坛,人们发布他们的问题而另一些人发布答案。例如,人物A说一个问题“什么是信号器?”并站在那个页面。其他人也打开那个页面进行回答。如果其他人发布任何答案,那么我希望该答案将在其他用户打开的该页面中显示。假设五个用户打开该页面,其中一个回答,那么五个用户将看到该答案。
通常当我们想要向所有人广播任何消息时,我们会使用类似于服务器端的语法
Clients.All.broadcastMessage(name, message);
所以根据我的上述情况我需要使用哪种语法?
这里有一些我找到的广播消息类型的指南,以下是
// Call send on everyone
Clients.All.send(message);
// Call send on everyone except the caller
Clients.Others.send(message);
// Call send on everyone except the specified connection ids
Clients.AllExcept(Context.ConnectionId).send(message);
// Call send on the caller
Clients.Caller.send(message);
// Call send on everyone in group "foo"
Clients.Group("foo").send(message);
// Call send on everyone else but the caller in group "foo"
Clients.OthersInGroup("foo").send(message);
// Call send on everyone in "foo" excluding the specified connection ids
Clients.Group("foo", Context.ConnectionId).send(message);
// Call send on to a specific connection
Clients.Client(Context.ConnectionId).send(message);
我需要使用哪一个?请解释&感谢。
答案 0 :(得分:1)
您可以在页面上有一个具有问题ID的div。所以你会有类似的东西:
<div id="theAskedQuestionId"><!-- the answer will be inserted here--></div>
所以例如:
<div id="12345"><!-- the answer will be inserted here--></div>
然后你可以使用jquery将答案注入div。一个例子是:
var messagePublisher = $.connection.yourHubName;
messagePublisher.client.broadcastMessage = function(divId, message){
$(divId).html(message); //note: divId will be something like #12345
};
这将允许您仅向正在查看特定问题的用户显示消息,而不是向查看任何问题的用户广播消息。我认为这就是你要求帮助的。