问题
As the title says, I have a list of all my registration IDs, and I want to send the same message to all of them at once.
I was told that GCM can handle approximately 1000 notifications at once, but I'm really confused as to how to do this in PushSharp
(other than actually sending them individually, using a for loop). If anyone is familiar with this I would really appreciate some assistance.
He's some generic code
push.RegisterGcmService(new GcmPushChannelSettings(ApiKey));
push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(RegistrationID)
.WithJson(json));
Instead of having 1 registration ID i'd like to send in a list of them. References to FAQ's but no actual answer on how to do so.
Reference 1
Reference 2
Reference 3
回答1:
I've never used Push Sharp, but based on this code :
You are currently using this method, which accepts a single Registration ID :
public static GcmNotification ForDeviceRegistrationId(this GcmNotification n, string deviceRegistrationId)
{
n.RegistrationIds.Add(deviceRegistrationId);
return n;
}
Use this method instead, which accepts multiple Registration IDs :
public static GcmNotification ForDeviceRegistrationId(this GcmNotification n, IEnumerable<string> deviceRegistrationIds)
{
n.RegistrationIds.AddRange(deviceRegistrationIds);
return n;
}
回答2:
You need to use that using to get extended methods
using PushSharp;
using PushSharp.Android;
using PushSharp.Core;
Then you can use
GcmNotification notification = new GcmNotification().ForDeviceRegistrationId(pRegistrationIds)
.WithJson(pMessage);
来源:https://stackoverflow.com/questions/17933125/how-to-send-batch-notifications-in-gcm-using-pushsharp