4

購読している signalR グループにメッセージを送信すると、メッセージが返されます!

私はこれを望んでいません。グループ内の他の全員にメッセージを送信したいのです。

これは可能ですか?どのように?

4

2 に答える 2

5

SignalR を使用できるようになりました

Clients.OthersInGroup("foo").send(message);

それはあなたが求めていることを正確に行います。発信者を除くグループ内の全員に SignalR クライアント メッセージを送信します。

ここで詳細を読むことができます: SignalR wiki ハブ

于 2013-01-10T12:28:03.853 に答える
5

ここでできることは、ConnectionId をクライアントに送信して検査できることです。たとえば、次のものがハブです。

[HubName("moveShape")]
public class MoveShapeHub : Hub
{
    public void MoveShape(double x, double y)
    {
        Clients.shapeMoved(Context.ConnectionId, x, y);
    }
}

クライアント レベルでは、次の操作を実行できます。

var hub = $.connection.moveShape,
    $shape = $("#shape"),
    $clientCount = $("#clientCount"),
    body = window.document.body;

$.extend(hub, {
    shapeMoved: function (cid, x, y) {
        if ($.connection.hub.id !== cid) {
            $shape.css({
                left: (body.clientWidth - $shape.width()) * x,
                top: (body.clientHeight - $shape.height()) * y
            });
        }
    }
});

編集

SignalR 1.0.0-alpha 以降、ハブを使用している場合は、そのための組み込み API があります。

[HubName("moveShape")]
public class MoveShapeHub : Hub
{
    public void MoveShape(double x, double y)
    {
        Clients.Others.shapeMoved(x, y);
    }
}

これにより、発信者以外の全員にデータがブロードキャストされます。

于 2012-10-15T14:10:02.890 に答える