He creado grandes aplicaciones web de producción con Pusher y PubNub, y también he migrado aplicaciones de una a otra. La mayor diferencia entre los dos servicios es el hecho de que PubNub usa transmisión HTTP / sondeo largo, mientras que Pusher usa WebSockets. WebSockets es claramente la mejor tecnología a largo plazo, pero hoy en día no es confiable en ciertos escenarios. Afortunadamente, Pusher también agregó una alternativa de sondeo largo HTTP en caso de que WebSockets no funcione.
Voy a entrar en más detalles a continuación:
Herramientas de depuración
Tanto Pusher como PubNub proporcionan algunas herramientas de depuración. Me parece que Pusher es más fácil de usar. Por ejemplo, en Pusher puede abrir la consola de depuración y ver pasar todos sus mensajes. En PubNub, debe pegar el nombre exacto del canal que desea escuchar. Lo cual está bien si el nombre de su canal es simple, pero es un gran dolor si su nombre de canal tiene una larga cadena de caracteres aleatorios. ¿Por qué harías tal cosa? Bueno, eso me lleva a …
- ¿Cuál es la mejor manera de administrar los gastos compartidos en línea?
- ¿Qué opinas de desarrollar mi aplicación web con php y mysql?
- ¿Cuáles son buenos ejemplos de un servicio PaaS que combina una oferta de CDN?
- ¿Quiénes son los principales desarrolladores de Ruby on Rails en Singapur?
- ¿Las aplicaciones web como MinuteBase y Weavar son representativas de una nueva ola de metodología de entrada para aplicaciones web?
Seguridad / Canales privados
Tanto PubNub como Pusher admiten el envío de mensajes a través de canales encriptados.
Pusher tiene un enfoque simple para la autorización llamado canales privados (http://pusher.com/docs/client_ap…) que le permite autenticar que un usuario tiene acceso a un canal en particular al proporcionar una clave de autorización firmada por su clave secreta. Esto le permite autenticarse en función del usuario actualmente conectado, por ejemplo.
PubNub tiene dos enfoques para la autorización. Puede 1) pagar una tarifa mensual adicional (en el momento de escribir este artículo $ 149 / mes) por su función de Access Manager, que permite otorgar explícitamente a los usuarios permiso de lectura / escritura a canales específicos a través de su API de Access Manager o 2) generar un canal único nombres insertando un token secreto impredecible en los nombres de su canal (defendido en este tema de github: https://github.com/pubnub/pubnub…)
Delegación de eventos
Pusher tiene un buen modelo de canal / evento donde puedes suscribirte a un canal, pero luego vincular devoluciones de llamada a eventos específicos a través de ese canal. He descubierto que esta es una forma bastante natural de implementar eventos de mensajes. PubNub no tiene nada similar. En su lugar, debe crear un canal separado para cada evento o rodar la delegación del evento usted mismo.
Editar: El CTO de PubNub dijo que PubNub admite un modelo de evento, pero tuve problemas para encontrar cualquier documentación o entender cómo funciona, pero me envió este enlace en referencia a él: pubnub / javascript
Tamaño del mensaje
PubNub limita los mensajes a 1.800 bytes, lo que puede no ser suficiente según lo que esté enviando. Esto me ha resultado problemático cuando parte de lo que estoy presionando son datos ingresados por el usuario que tienen una longitud variable. Le permiten aumentar el tamaño máximo a 7.2k por una tarifa mensual adicional ($ 149 en el momento en que escribo esto)
Para empeorar las cosas, su gema de rubí falla silenciosamente cuando el mensaje es más largo que eso, lo que me ha costado horas de tiempo de depuración tratando de descubrir por qué no se reciben mis mensajes.
Los límites de Pusher son de 10 kb por mensaje como parte de su oferta normal (consulte: ¿Cuál es el límite de tamaño de mensaje al publicar un mensaje?) Ofrecen tamaños de mensaje más grandes para planes empresariales.
Canales de presencia
Tanto Pusher como Pubnub tienen canales de presencia, que podrían serle útiles si está implementando un sistema de chat, etc. Todavía no los he usado o necesitado.
Resumen
En general, descubrí que Pusher tiene una mejor documentación / ejemplos, una mejor API y mejores herramientas de backend / depuración. Realmente me gustan los canales privados que ofrece Pusher, mensajes de mayor tamaño y la capacidad de enviar diferentes eventos a través de un solo canal y solo suscribirse a eventos particulares. Pero vale la pena evaluar y crear prototipos con ambos para descubrir cuál satisface mejor sus necesidades particulares.