Estoy usando PHP para conectarme a apn
s para enviar algunas notificaciones a varios dispositivos, aunque la pregunta es más conceptual, por lo que no tiene que ser específica de PHP.Apple Push Notification: Envío de grandes volúmenes de mensajes
Enviaré alrededor de 7000 dispositivos (y en crecimiento), todo al mismo tiempo. Mi proceso se ejecuta UNA VEZ por día y se transmite a todos los dispositivos, por lo que no estoy constantemente reabriendo una conexión.
Actualmente puedo enviar fácilmente a 2 dispositivos a la vez y los mensajes se entregarán con éxito. Sin embargo, cuando intento enviar a los 7000 dispositivos completos, los mensajes no parecen entregarse.
El pseudo-lógica para mi código es:
open connection to apple
loop over device-tokens
write to socket connection per device
end loop
close connection to apple.
he visto en alguna parte que sólo debería realizar una escritura SOLA, y construir una enorme cuerpo, en otras palabras, el pseudo-código se vería así:
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
Es difícil de probar ya que obviamente no puedo enviar mensajes de prueba a mis 7000 usuarios de producción. ¿Alguien más ha tenido un problema similar?
Gracias
¿Alguna vez hizo que esto funcionara? Pronto escribiré una aplicación que enfrentará el mismo problema: transmitirla a miles de clientes a través de APNS. –
Hola Mike. Sí, lo hice. La implementación en el momento en que publiqué esta pregunta estaba en las primeras etapas. El problema fue que tenía algunos dispositivos de espacio aislado en la misma mesa que los dispositivos de producción. Apple a veces abandona la conexión si la envía a un dispositivo_contacto_token mientras usa los certificados de producción. Entonces, la solución simple es simplemente verificar que se haya escrito la cantidad correcta de bytes en la conexión y que la conexión no haya caído después de cada evento de escritura. Si se cae, debes volver a abrir la conexión y continuar desde donde la dejaste. ¡buena suerte! – BoomShaka
FYI, puede abrir la conexión y realizar tantas escrituras como desee. solo asegúrese de verificar el estado de la conexión después de escribir – BoomShaka