如何在 C# .Net 上发送批量推送通知 Android

Posted

技术标签:

【中文标题】如何在 C# .Net 上发送批量推送通知 Android【英文标题】:How to send Batch Push Notification Android on C# .Net 【发布时间】:2014-01-22 13:53:34 【问题描述】:

我有两种发送推送通知的方法 第一个例子:

public void SendPushNotification(String regId, String message, String googleAppId, String senderId)
    
        var value = message;
        var tRequest = WebRequest.Create(ConfigurationManager.AppSettings["RequestUrl"]);
        tRequest.Method = "post";
        tRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8";
        tRequest.Headers.Add(string.Format("Authorization: key=0", googleAppId));

        tRequest.Headers.Add(string.Format("Sender: id=0", senderId));

        string postData = "data.message=" + value + "&registration_id=" + regId + "";
        var byteArray = Encoding.UTF8.GetBytes(postData);
        tRequest.ContentLength = byteArray.Length;

        var dataStream = tRequest.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();

        var tResponse = tRequest.GetResponse();

        dataStream = tResponse.GetResponseStream();

        if (dataStream != null)
        
            var tReader = new StreamReader(dataStream);

            String sResponseFromServer = tReader.ReadToEnd();

            var httpResponse = (HttpWebResponse) tResponse;
            string statusCode = httpResponse.StatusCode.ToString();

            tReader.Close();
        
        if (dataStream != null) dataStream.Close();
        tResponse.Close();
    

第二个例子。我使用 PushSharp 的 PushBroker

            var push = new PushBroker();
            push.RegisterGcmService(new GcmPushChannelSettings(apikey));
            push.QueueNotification(
                new GcmNotification().ForDeviceRegistrationId(deviceId).WithJson(json));

而且这种方法效果很好。 我知道如何发送批量推送通知(我的意思是设备列表的一条消息和歌曲)。我在那里看到了例子 How to send batch notifications in GCM using PushSharp

但我想批量发送推送通知,对于每台设备,我都有一些特殊消息和一些歌曲名称。那么您知道我的问题有什么解决方案吗?

【问题讨论】:

【参考方案1】:

您不能将不同的消息批量发送到不同的注册 ID。

Google Cloud Messaging 接受的 JSON 请求支持单个负载(在 data 元素内)和 1 到 1000 个注册 ID。这意味着在每个请求中,您可以向一个注册 ID 发送一条消息,也可以向多个注册 ID 发送同一条消息。

【讨论】:

感谢您的回答。

以上是关于如何在 C# .Net 上发送批量推送通知 Android的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net 中的推送通知

如何使用 azure hub 向某些用户发送批量推送通知

在 asp.net c# 中创建 iPhone 推送通知 Web 服务

使用 .net 或 C# 发送 iOS 通知 [关闭]

如何从 C# 发送 FireBase 自定义推送通知?

如何从 Asp.net 核心向 Flutter 应用发送推送通知