php - example - ¿Cómo funcionan las notificaciones push?
web push notifications example (2)
Solo quería compartir la implementación real con la que fui. Decidí ir con un gran SAAS, Pusher , ya que hay muchos problemas desafiantes en la implementación de notificaciones Push, como me di cuenta al leer los enlaces en la excelente respuesta de @Virendra, que Pusher resuelve para ti.
Lo que más me impresionó es qué tan poco código tiene que escribir para que esto funcione. Vea abajo. Mi servidor está en PHP ( Pusher tiene bibliotecas en muchos idiomas ).
require(''/application/thirdParty/pusher-html5-realtime-push-notifications/lib/squeeks-Pusher-PHP/lib/Pusher.php'');
require(''/application/thirdParty/pusher-html5-realtime-push-notifications/config.php'');
$pusher = new Pusher(APP_KEY, APP_SECRET, APP_ID);
foreach($recipients as $row){
$channel=''my-channel''.$row->recipient_id;
$pusher->trigger($channel, ''notifications'',
array(''message'' => $row->message,
''notification_id'' => $row->notification_id)
);
}
Aquí está el HTML / JS (no se sienta abrumado, la mayor parte de este código es solo para completar el pequeño círculo y la lista con la notificación entrante como Stackoverflow y otros lo hacen):
<script src="/application/thirdParty/pusher.min.js"></script>
<script>
var myID=179; // would receive notification if myID matches $row->recipient_id above;
var myChannel = pusher.subscribe(''my-channel''+myID);
myChannel.bind(''notifications'',
function(data) {
var message=String(data.message),
url=''/notifications/''+data.notification_id,
icon=''<i class=/'icon-heart/'></i>'',
urlText=icon+message;
var notificationRow=''<li><a href=''+url+''>''+urlText+''</a></li>'';
$(''#notificationsDropdownList'').prepend(notificationRow);
if(notificationCircleCount==0){
notificationCircleCount++;
$notificationCircle.show();
$notificationCircleCount.html(notificationCircleCount);
}
else{
notificationCircleCount++;
$notificationCircleCount.html(notificationCircleCount);
}
console.log(''Pusher happened''+data.message);
} //function
); //myChannel
</script>
Estoy tratando de implementar notificaciones push en mi sitio web basado en PHP. El objetivo es hacer algo similar a lo que Stackoverflow y otros sitios tienen que notificar a un usuario en tiempo real cuando reciben mensajes.
Estoy utilizando mysql como mi base de datos, Apache como mi servidor, y estoy considerando usar Amazon-SNS como el marco para estas notificaciones, ya que es para lo que ese servicio parece estar destinado.
La literatura me ha sending.php
cómo programáticamente se configuran las páginas sending.php
y receiving.php
. Asumo que la página de sending.php
solo implica un $_POST[''message'']
a alguna página, pero a partir de ahí estoy realmente perdido.
Si algo pudiera ayudarme a entender cómo sería la página de receive.php para una notificación de inserción, lo agradecería enormemente.
Trabajando
HTML5rocks ha proporcionado una buena explicación aquí , sobre cómo funcionan los websockets.
Bueno, puedes utilizar Websockets para los navegadores que lo soportan (ya que todos los navegadores modernos brindan un buen soporte)
Empezando
Puede comenzar con estos pocos recursos:
Nettuts + proporciona un buen tutorial para comenzar con websockets .
Para navegadores compatibles con Websockets
Retroceder
Puede usar Modernizr para detectar si el navegador del Cliente tiene soporte para websockets o no y como alternativa puede hacer uso de flash en lugar de Websockets.
Para esos proyectos, cuando se ejecuta en navegadores sin WebSockets o con él deshabilitado, se usará web-socket-js . Será menos eficiente que la latencia nativa, pero aún mucho más baja que la larga.
Cualquier navegador con Flash puede admitir WebSocket utilizando el web-socket-js shim / polyfill.
Referencia: