2011-01-27 16 views
12

Sto sviluppando un servizio di messaggistica SMS online e sto cercando una libreria SMPP scalabile e robusta per .NET. Ho visto EasySMPP (ma ho qualche dubbio con esso) e RoamingSMPP. Ce ne sono anche uno ma non ricordo il nome. Per me il più importante è la scalabilità, la stabilità e la tolleranza ai guasti. Potrei avere 500k + utenti e diverse centinaia di SMS al secondo. La comunicazione sarà a 2 vie, la ricezione dovrebbe essere in grado di rispondere agli SMS ricevuti dal mio messenger. Quindi sono interessato se qualcuno può consigliare la libreria che si adatta alle mie esigenze? Non importa per me se è gratuito o commerciale.Una robusta libreria SMPP per .NET

Grazie

risposta

14

Davita, sto usando il Jamaa SMPP Client per 3 mesi con successo. È relativamente facile da implementare e gratuito.

+1

post-mortem nota: la biblioteca è ancora in uso oggi in OI, una delle 4 principali società di telecomunicazioni in Brasile. – tcbrazil

1

C'è veramente solo la componente ActiveXperts, anche se non sono sicuro se si tratta di una libreria nativa .NET.

EasySMPP e RoaminSMPP sono entrambi pieni di bug gravi e incompleti. Il gruppo Devshock è terribile. Li abbiamo provati tutti.

Purtroppo abbiamo finito per scrivere il nostro in .NET nativo. Ci stiamo avvicinando al segno 1mil/messages/month con esso.

Esiste un'azienda tedesca di cui non ricordo il nome che fa un componente SMPP ma i costi di licenza sono molto alti e mi sembra di ricordare che si trattava di una libreria COM.

3

scalabilità nel protocollo SMPP è questione complicata. È possibile ridimensionare orizzontalmente attivando più connessioni, ma ciò crea problemi come i rapporti di stato che ritornano su un'altra connessione rispetto al messaggio inviato, se si utilizza un account. Il ridimensionamento verticale non è solo sul componente (ma ovviamente il componente mal progettato può limitare il throughput) ma spesso è limitato dallo stesso SMSC - è difficile trovare un SMSC che non saturi oltre 100-150 messaggi al secondo restituendo la limitazione errore (0x00000058 - ESME ha superato i limiti consentiti per i messaggi). Conclusione: il raggiungimento di alte prestazioni potrebbe richiedere la cooperazione con l'operatore. Componente/libreria possono tornare utili se ha, ad es. limitazione o invio a più destinazioni supporto integrato.

La robustezza è un'altra cosa piuttosto soggettiva, ma a mio parere il buon supportopreventivo è una parte di esso.

La tolleranza di errore può essere ottenuta solo in cooperazione tra componente/libreria e l'applicazione che lo utilizza. La libreria non può fare tutte le cose come riprovare i submit, trattare interamente con la limitazione, rispondere agli errori in submit_multi operation ecc. Ciò richiederebbe un meccanismo di accodamento/buffering e interferirebbe certamente con un throughput elevato per le operazioni di base. Preferirebbe essere un gateway SMPP se si desidera che gestisca tutti gli errori che possono apparire. Ma con una buona libreria tutto questo può essere fatto facilmente per i principianti e la messa a punto con le crescenti richieste di prestazioni.

Questa libreria commerciale .NET potrebbe valere la pena considerare:

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

Ha abbastanza grande numero di installazioni, non pochi da grandi delle telecomunicazioni.Può essere utilizzato in modo scalabile sia verticale orizzontale & sia in grado di implementare scenari di tolleranza agli errori. Nella vita reale i test raggiungono oltre 500 messaggi al secondo su un singolo collegamento TCP/IP, limitato dalle capacità di SMSC.