2015-12-21 8 views
7

私は、サーバーからクライアントにメッセージを送信するとき、クライアントに元の順序で到着しないという問題があります。 「すべて」し、「GRP1」しかし、私は常に取得する:私はこの順で2回の警告を得ることを期待SignalRサーバーからクライアントへのメッセージの順序を保持する方法

var chanceHub = $.connection.chanceHub; 
chanceHub.client.Hello = function (message) { 
    alert(message); 
} 
$.connection.hub.start().done(function() { 
    chanceHub.server.hello("grp1"); 
}); 

public async Task Hello(string group) 
    { 
     await Groups.Add(Context.ConnectionId, group); 
     await Clients.Group("grp1").Hello("grp1"); 
     await Clients.Group("grp2").Hello("grp2"); 
     await Clients.All.Hello("all"); 
    } 

とクライアント上:私はここでテスト機能を持っていますメッセージ「すべて」が最初に表示されます。 この問題を解決する方法はありますか?

+0

SignalRはメッセージの順序を保持します。クライアントがグループに追加されていますか? –

+0

@StephenClearyはい、クライアントはgrp1にあります。しかし、その順序は保持されず、なぜ私はグループ内のメッセージの順序が正しいのか理解できませんが、グループ間のメッセージングに関してはすべてがシャッフルします。 – CodeDemen

答えて

5

この問題は未解決の問題#3310です。この問題は回避策についても説明しています。Issue #3310

+2

この問題は、 'await'を追加して動作させることを示唆しています。 OPsコードにはすでに 'await'が含まれています。 –

関連する問題