2015-12-21 8 views
7

Ich habe ein Problem, dass, wenn ich Nachrichten vom Server zum Client senden sie nicht in der ursprünglichen Reihenfolge auf dem Client ankommen. Ich habe eine Testfunktion hier bekam:SignalR wie Nachrichtenreihenfolge von Server zu Client erhalten

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

Und auf den Client:

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

I 2 Warnungen in dieser Reihenfolge erhalten erwarten: "grp1" und dann "alle" Aber ich bekomme immer die Nachricht "alle" zuerst. Gibt es eine Möglichkeit, dieses Problem zu lösen?

+0

SignalR wird Nachrichtenreihenfolge beibehalten. Sind Sie sicher, dass der Client der Gruppe hinzugefügt wird? –

+0

@StephenCleary ja, der Client ist in GRP1. Aber die Reihenfolge ist nicht erhalten und ich kann nicht verstehen, warum ... die Reihenfolge der Nachrichten innerhalb einer Gruppe in Ordnung ist, aber wenn es um Messaging zwischen den Gruppen geht, mischt sich alles um – CodeDemen

Antwort

5

Es ist ein ungelöstes Problem # 3310 für dieses Problem. Das Problem beschreibt auch eine Problemumgehung Issue #3310

+2

. Der OP-Code enthält bereits 'erwarten'. –

Verwandte Themen