2011-01-27 19 views
12

Estoy desarrollando un mensajero SMS en línea y buscando una biblioteca SMPP escalable y robusta para .NET. Vi EasySMPP (pero tengo algunas dudas) y RoamingSMPP. También hay uno pero no recuerdo su nombre. Para mí, lo más importante es su escalabilidad, estabilidad y tolerancia a fallas. Puedo tener 500k + usuarios y varios cientos de SMS por segundo. La comunicación será de 2 vías, recibir debería poder responder al mensaje SMS recibido de mi messenger. Entonces, ¿me interesa si alguien puede recomendar la biblioteca que se adapta a mis necesidades? No me importa si es gratis o comercial.Una robusta biblioteca SMPP para .NET

Gracias

Respuesta

14

Davita, llevo usando el Jamaa SMPP Client durante 3 meses con éxito. Es relativamente fácil de implementar, y es gratis.

+1

Nota post-mortem: la biblioteca todavía está en uso hoy en OI, una de las 4 principales compañías de telecomunicaciones en Brasil. – tcbrazil

1

No sólo es realmente el componente ActiveXperts, aunque no estoy seguro si es una biblioteca .NET nativo.

EasySMPP y RoaminSMPP están llenos de errores graves e incompletos. El componente Devshock es horrible. Los probamos todos.

Desafortunadamente terminamos escribiendo el nuestro en .NET nativo. Nos acercamos a la marca 1mil/mensajes/mes con ella.

Hay una empresa alemana que no recuerdo el nombre de que haga un componente SMPP pero los costos de licencia son muy altos y parece recordar que era una biblioteca COM.

3

Escalabilidad en el protocolo SMPP es asunto complicado. Puede escalar horizontalmente activando varias conexiones, pero esto crea problemas como la devolución de informes de estado en otra conexión que el mensaje enviado, si se usa una cuenta. El escalado vertical no solo está en el componente (pero, por supuesto, un componente mal creado puede limitar el rendimiento), pero con frecuencia está limitado por el SMSC en sí: es difícil encontrar un SMSC que no sature más de 100-150 mensajes por segundo al regresar acelerando error (0x00000058 - ESME ha excedido los límites de mensajes permitidos). Concluir: lograr un alto rendimiento puede requerir cooperación con el operador. Componente/biblioteca puede ser útil si tiene, por ejemplo, estrangulación o enviar a múltiples destinos soporte integrado.

La robustez es otra cosa más bien subjetiva, pero en mi opinión buena & soporte preventivo son parte de ello.

La tolerancia a fallas solo puede lograrse en cooperación entre componente/biblioteca y la aplicación que lo está utilizando. La biblioteca no puede hacer todo lo posible, como reintentar los envíos, lidiar completamente con la aceleración, responder a errores en la operación submit_multi, etc. Esto requeriría un mecanismo de puesta en cola/almacenamiento en búfer y ciertamente interferiría con un alto rendimiento para las operaciones básicas. Sería más bien una puerta de enlace SMPP si desea que se ocupe de todos los errores que puedan aparecer. Pero con una buena biblioteca, todo esto se puede hacer fácilmente para principiantes y ajustarlo con las crecientes demandas de rendimiento.

Esta biblioteca .NET comercial puede valer la pena considerar:

http://www.tops.com.pl/en/products/smscc/

tiene absolutamente gran número de instalaciones, buen número de grandes telecomunicaciones.Se puede usar de forma escalable tanto en horizontal como en & vertical y puede implementar escenarios de tolerancia a fallas. En las pruebas de la vida real se logran más de 500 mensajes por segundo en un único enlace TCP/IP, limitado por las capacidades del SMSC.

Cuestiones relacionadas