public void NotifyAndroidUserUsers(List <string> deviceIds, string message, NotificationType type) { //Fluent construction of an Android GCM Notification //IMPORTANT: For Android you MUST use your own RegistrationId here that gets generated within your Android app itself! var noti = new GcmNotification(); noti.RegistrationIds = deviceIds; _pushBroker.QueueNotification(noti.WithJson("{\"alert\":\"" + message + "\",\"badge\":6, \"type\":\"" + type.ToString() + "\"}")); }
public void SendInvite(List <string> registrationIds, PushNotification notificationData) { GcmNotification notification = new GcmNotification(); notification.ForDeviceRegistrationId(registrationIds); notification.WithJson(Serializer.SerializeToJason <PushNotification>(notificationData)); this.PushNotification(notification); }
//Android push message to GCM server method #region IPushNotifier Implemented methods public void Invite(Event evnt, List <UserProfile> users) { List <string> registrationIds = new List <string>(); users.ForEach(user => { registrationIds.Add(user.GCMClientId); }); GcmNotification notification = new GcmNotification(); notification.ForDeviceRegistrationId(registrationIds); PushNotification notificationData = new PushNotification() { Type = "EventInvite", EventId = evnt.EventId.ToString(), EventName = evnt.Description }; notification.WithJson(Serializer.SerializeToJason <PushNotification>(notificationData)); this.PushNotification(notification); }
public void TestNotifications(bool shouldBatch, int toQueue, int expectSuccessful, int expectFailed, int[] indexesToFail = null, bool waitForScaling = false) { testPort++; int msgIdOn = 1000; int pushFailCount = 0; int pushSuccessCount = 0; int serverReceivedCount = 0; int serverReceivedFailCount = 0; int serverReceivedSuccessCount = 0; //var notification = new GcmNotification(); var server = new TestServers.GcmTestServer(); server.MessageResponseFilters.Add(new GcmMessageResponseFilter() { IsMatch = (request, s) => { return(s.Equals("FAIL", StringComparison.InvariantCultureIgnoreCase)); }, Status = new GcmMessageResult() { ResponseStatus = GcmMessageTransportResponseStatus.InvalidRegistration, MessageId = "1:" + msgIdOn++ } }); server.MessageResponseFilters.Add(new GcmMessageResponseFilter() { IsMatch = (request, s) => { return(s.Equals("NOTREGISTERED", StringComparison.InvariantCultureIgnoreCase)); }, Status = new GcmMessageResult() { ResponseStatus = GcmMessageTransportResponseStatus.NotRegistered, MessageId = "1:" + msgIdOn++ } }); //var waitServerFinished = new ManualResetEvent(false); server.Start(testPort, response => { serverReceivedCount += (int)response.NumberOfCanonicalIds; serverReceivedSuccessCount += (int)response.NumberOfSuccesses; serverReceivedFailCount += (int)response.NumberOfFailures; }); var settings = new GcmPushChannelSettings("SENDERAUTHTOKEN"); settings.OverrideUrl("http://*****:*****@"{""key"":""value1""}"; if (shouldBatch) { var regIds = new List <string>(); for (int i = 0; i < toQueue; i++) { regIds.Add((indexesToFail != null && indexesToFail.Contains(i)) ? "FAIL" : "SUCCESS"); } var n = new GcmNotification(); n.RegistrationIds.AddRange(regIds); n.WithJson(json); push.QueueNotification(n); } else { for (int i = 0; i < toQueue; i++) { push.QueueNotification(new GcmNotification() .ForDeviceRegistrationId((indexesToFail != null && indexesToFail.Contains(i)) ? "FAIL" : "SUCCESS") .WithJson(json)); } } Console.WriteLine("Avg Queue Wait Time: " + push.AverageQueueWaitTime + " ms"); Console.WriteLine("Avg Send Time: " + push.AverageSendTime + " ms"); if (waitForScaling) { while (push.QueueLength > 0) { Thread.Sleep(500); } Console.WriteLine("Sleeping 3 minutes for autoscaling..."); Thread.Sleep(TimeSpan.FromMinutes(3)); Console.WriteLine("Channel Count: " + push.ChannelCount); Assert.IsTrue(push.ChannelCount <= 1); } push.Stop(); push.Dispose(); server.Dispose(); //waitServerFinished.WaitOne(); Console.WriteLine("TEST-> DISPOSE."); Assert.AreEqual(toQueue, serverReceivedCount, "Server - Received Count"); Assert.AreEqual(expectFailed, serverReceivedFailCount, "Server - Failed Count"); Assert.AreEqual(expectSuccessful, serverReceivedSuccessCount, "Server - Success Count"); Assert.AreEqual(expectFailed, pushFailCount, "Client - Failed Count"); Assert.AreEqual(expectSuccessful, pushSuccessCount, "Client - Success Count"); }
public void TestNotifications(bool shouldBatch, int toQueue, int expectSuccessful, int expectFailed, int[] indexesToFail = null) { testPort++; int msgIdOn = 1000; int pushFailCount = 0; int pushSuccessCount = 0; int serverReceivedCount = 0; int serverReceivedFailCount = 0; int serverReceivedSuccessCount = 0; //var notification = new GcmNotification(); var server = new TestServers.GcmTestServer(); server.MessageResponseFilters.Add(new GcmMessageResponseFilter() { IsMatch = (request, s) => { return(s.Equals("FAIL", StringComparison.InvariantCultureIgnoreCase)); }, Status = new GcmMessageResult() { ResponseStatus = GcmMessageTransportResponseStatus.InvalidRegistration, MessageId = "1:" + msgIdOn++ } }); server.MessageResponseFilters.Add(new GcmMessageResponseFilter() { IsMatch = (request, s) => { return(s.Equals("NOTREGISTERED", StringComparison.InvariantCultureIgnoreCase)); }, Status = new GcmMessageResult() { ResponseStatus = GcmMessageTransportResponseStatus.NotRegistered, MessageId = "1:" + msgIdOn++ } }); //var waitServerFinished = new ManualResetEvent(false); server.Start(testPort, response => { serverReceivedCount += (int)response.NumberOfCanonicalIds; serverReceivedSuccessCount += (int)response.NumberOfSuccesses; serverReceivedFailCount += (int)response.NumberOfFailures; }); var settings = new GcmPushChannelSettings("SENDERAUTHTOKEN"); settings.OverrideUrl("http://*****:*****@"{""key"":""value1""}"; if (shouldBatch) { var regIds = new List <string>(); for (int i = 0; i < toQueue; i++) { regIds.Add((indexesToFail != null && indexesToFail.Contains(i)) ? "FAIL" : "SUCCESS"); } var n = new GcmNotification(); n.RegistrationIds.AddRange(regIds); n.WithJson(json); push.QueueNotification(n); } else { for (int i = 0; i < toQueue; i++) { push.QueueNotification(new GcmNotification() .ForDeviceRegistrationId((indexesToFail != null && indexesToFail.Contains(i)) ? "FAIL" : "SUCCESS") .WithJson(json)); } } push.Stop(); push.Dispose(); server.Dispose(); //waitServerFinished.WaitOne(); Console.WriteLine("TEST-> DISPOSE."); Assert.AreEqual(toQueue, serverReceivedCount, "Server - Received Count"); Assert.AreEqual(expectFailed, serverReceivedFailCount, "Server - Failed Count"); Assert.AreEqual(expectSuccessful, serverReceivedSuccessCount, "Server - Success Count"); Assert.AreEqual(expectFailed, pushFailCount, "Client - Failed Count"); Assert.AreEqual(expectSuccessful, pushSuccessCount, "Client - Success Count"); }