diff --git a/src/Microsoft.Azure.SignalR.Protocols/ServiceMessage.cs b/src/Microsoft.Azure.SignalR.Protocols/ServiceMessage.cs index 1f1e5f732..dfe456ce6 100644 --- a/src/Microsoft.Azure.SignalR.Protocols/ServiceMessage.cs +++ b/src/Microsoft.Azure.SignalR.Protocols/ServiceMessage.cs @@ -592,7 +592,7 @@ public class GroupMemberQueryMessage : ExtensibleServiceMessage, IAckableMessage /// /// The max count of connections to return. /// - public int Max { get; set; } = 200; + public int? Top { get; set; } /// /// A token to indiate the start point of results. diff --git a/src/Microsoft.Azure.SignalR.Protocols/ServiceProtocol.cs b/src/Microsoft.Azure.SignalR.Protocols/ServiceProtocol.cs index 5658e5c89..9203b5810 100644 --- a/src/Microsoft.Azure.SignalR.Protocols/ServiceProtocol.cs +++ b/src/Microsoft.Azure.SignalR.Protocols/ServiceProtocol.cs @@ -763,7 +763,14 @@ private static void WriteGroupMemberQueryMessage(ref MessagePackWriter writer, G message.WriteExtensionMembers(ref writer); writer.Write(message.GroupName); writer.Write(message.AckId); - writer.Write(message.Max); + if (message.Top != null) + { + writer.Write(message.Top.Value); + } + else + { + writer.WriteNil(); + } writer.Write(message.ContinuationToken); } @@ -1394,7 +1401,7 @@ private static GroupMemberQueryMessage CreateGroupMemberQueryMessage(ref Message result.ReadExtensionMembers(ref reader); result.GroupName = ReadStringNotNull(ref reader, nameof(GroupMemberQueryMessage.GroupName)); result.AckId = ReadInt32(ref reader, nameof(GroupMemberQueryMessage.AckId)); - result.Max = ReadInt32(ref reader, nameof(GroupMemberQueryMessage.Max)); + result.Top = reader.TryReadNil() ? null : ReadInt32(ref reader, nameof(GroupMemberQueryMessage.Top)); result.ContinuationToken = ReadString(ref reader, nameof(GroupMemberQueryMessage.ContinuationToken)); return result; } diff --git a/test/Microsoft.Azure.SignalR.Protocols.Tests/ServiceMessageEqualityComparer.cs b/test/Microsoft.Azure.SignalR.Protocols.Tests/ServiceMessageEqualityComparer.cs index 60bc76935..90505735d 100644 --- a/test/Microsoft.Azure.SignalR.Protocols.Tests/ServiceMessageEqualityComparer.cs +++ b/test/Microsoft.Azure.SignalR.Protocols.Tests/ServiceMessageEqualityComparer.cs @@ -404,7 +404,7 @@ private bool GroupMemberQueryMessageEqual(GroupMemberQueryMessage x, GroupMember { return x.AckId == y.AckId && StringEqual(x.GroupName, y.GroupName) && - x.Max == y.Max && + x.Top == y.Top && StringEqual(x.ContinuationToken, y.ContinuationToken) && x.TracingId == y.TracingId; } diff --git a/test/Microsoft.Azure.SignalR.Protocols.Tests/ServiceProtocolFacts.cs b/test/Microsoft.Azure.SignalR.Protocols.Tests/ServiceProtocolFacts.cs index 8244a24a3..c8f0112ac 100644 --- a/test/Microsoft.Azure.SignalR.Protocols.Tests/ServiceProtocolFacts.cs +++ b/test/Microsoft.Azure.SignalR.Protocols.Tests/ServiceProtocolFacts.cs @@ -704,7 +704,11 @@ public static IEnumerable TestParseOldData binary: "lSelY29ubjLSAAAAAtIAAAAEgA=="), new ProtocolTestData( name: "GroupMemberQueryMessage", - message: new GroupMemberQueryMessage() { GroupName = "group", AckId = 1, Max = 10, ContinuationToken = "token", TracingId = 1234UL }, + message: new GroupMemberQueryMessage() { GroupName = "group", AckId = 1 }, + binary: "liiApWdyb3VwAcDA"), + new ProtocolTestData( + name: "GroupMemberQueryMessageWithOptionalFields", + message: new GroupMemberQueryMessage() { GroupName = "group", AckId = 1, Top = 10, ContinuationToken = "token", TracingId = 1234UL }, binary: "liiBAc0E0qVncm91cAEKpXRva2Vu"), }.ToDictionary(t => t.Name);