購読している signalR グループにメッセージを送信すると、メッセージが返されます!
私はこれを望んでいません。グループ内の他の全員にメッセージを送信したいのです。
これは可能ですか?どのように?
購読している signalR グループにメッセージを送信すると、メッセージが返されます!
私はこれを望んでいません。グループ内の他の全員にメッセージを送信したいのです。
これは可能ですか?どのように?
SignalR を使用できるようになりました
Clients.OthersInGroup("foo").send(message);
それはあなたが求めていることを正確に行います。発信者を除くグループ内の全員に SignalR クライアント メッセージを送信します。
ここで詳細を読むことができます: SignalR wiki ハブ
ここでできることは、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);
}
}
これにより、発信者以外の全員にデータがブロードキャストされます。