首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >苹果推送通知:发送大量消息

苹果推送通知:发送大量消息
EN

Stack Overflow用户
提问于 2010-04-06 18:02:11
回答 1查看 14.3K关注 0票数 18

我正在使用PHP连接到apn来向多个设备发送一些通知,尽管这个问题更多的是概念性的,所以它不必特定于PHP。

我将同时发送到大约7000台设备(而且还在不断增加)。我的进程每天运行一次,并向所有设备广播,因此我不会不断地重新打开连接。

目前,我可以轻松地一次发送到2个设备,消息将成功发送。然而,当我尝试发送到全部7000台设备时,消息似乎无法发送。

我的代码的伪逻辑是:

代码语言:javascript
复制
open connection to apple
loop over device-tokens
    write to socket connection per device
end loop
close connection to apple.

我在某个地方看到,我应该只执行一次编写,并构造一个巨大的主体,换句话说,伪代码将如下所示:

代码语言:javascript
复制
loop over device tokens
    create payload aggregating all devices
end loop
open connection to apple
write to socket ONCE with whole payload for 7000 devices
close connection

这很难测试,因为我显然不能用测试消息给我的7000个生产用户发送垃圾邮件。其他人也有类似的问题吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-07-05 17:48:51

我知道你想要什么,更确切地说,我确实遇到了同样的问题,对我起作用的是逆向工程。我只是查看了这个库,并检查了验证deviceToken的函数。因此,在创建虚拟设备令牌时,我只是确保生成的令牌按照库是有效的。

下面的代码将让您生成有效的设备令牌,现在取决于您使用此函数生成多少百万令牌。

代码语言:javascript
复制
   def generateRandomDeviceTokenAndAppendItToJson(tokenLength: Int) {
     val randomlyGeneratedDeviceToken = new StringBuilder()
      randomlyGeneratedDeviceToken.append("          \"")
        (1 to tokenLength) foreach {
         times: Int =>
        if (tokenLength equals Device.Apple)
         randomlyGeneratedDeviceToken.append(validCharacter().toString.charAt(0))
        else
         randomlyGeneratedDeviceToken.append(Random.alphanumeric.head)
        }
       randomlyGeneratedDeviceToken.append("\",")
       println(randomlyGeneratedDeviceToken)
       writer.write(randomlyGeneratedDeviceToken.toString())
      }

      private def validCharacter(): Int = {
       val a = Random.alphanumeric.head
       if ('0' <= a && a <= '9')
        return (a - '0')
       else if ('a' <= a && a <= 'f')
        return ((a - 'a') + 10)
       else if ('A' <= a && a <= 'F')
        return ((a - 'A') + 10)
       validCharacter() 
     }

苹果deviceToken是64个字符,所以你需要在它上面迭代64次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2583957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档