1

假设我有论坛,人们发布他们的问题,其他人发布答案。比如说人 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);

我需要使用哪一个?请解释&谢谢。

4

1 回答 1

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
};

这将允许您仅向正在查看特定问题的用户显示消息,而不是向查看任何问题的用户广播消息。我想这就是你寻求帮助的原因。

于 2013-04-26T15:32:43.913 回答