2015-03-20 1 views
-1

Je souhaite implémenter un service de messagerie instantanée de manière analogue à whatsapp. Les messages sont livrés, même si l'expéditeur et le destinataire n'ont pas besoin d'être en ligne en même temps.Cadre pour l'implémentation d'un service de messagerie instantanée/chat

Existe-t-il une structure existante pour le faire (d'ailleurs, j'utilise un serveur linux). Le service Google Clouse est-il adapté à cela? Merci

+0

serveur XMPP. (Prosodie?) Google Cloud Messaging fonctionne très bien, mais il est conçu pour Android OS. – zipzit

+0

En fait, l'application est seulement sur Android. Le service de messagerie cloud est-il toujours adapté à la gestion des messages de discussion, également avec les pièces jointes, et à leur livraison lorsque le récepteur est en ligne? – softwaresupply

Répondre

1

Google Cloud Messaging (GCM) est un service qui gère les petits messages vers android. Cela nécessite que les utilisateurs utilisent Google Play.

Ce qui rend si cool, c'est qu'ils vont gérer les connexions pour vous. Ils feront la queue pendant une période pouvant aller jusqu'à quatre semaines, et après cela, ils enverront un message vous informant que cela fait plus de plusieurs semaines, et vous devrez traiter une nouvelle demande pour obtenir à nouveau les messages originaux.

C'est un service gratuit. Il y a certaines limites de taux, mais elles semblent assez raisonnables. C'est-à-dire que vous ne pouvez pas l'utiliser pour envoyer des mouvements de jeu fréquents, mais c'est très bien pour les messages texte normaux. Si je comprends bien, GCM est seulement une interface de serveur. Vous devrez lancer votre propre serveur XMPP pour stocker et gérer les messages. Note: il y a une limite de charge utile sur les messages GCM, je pense que c'est 4k ou plus ... pas assez grand pour les images. Vous devrez les gérer via http et envoyer des noms d'image via GCM.

Ils vont également diffuser des messages aux utilisateurs (1000 à la fois). Ai-je mentionné que c'est un service gratuit?

Quelque chose comme this link vous aidera à démarrer. La chose des clés API et le numéro d'enregistrement est un peu déroutant. Une fois que vous comprendre cela, tout fonctionne. Vous pouvez tester votre émulateur via des messages papillotes au serveur google, etc ..

Oh, et GCM conserve également la trace de toutes vos analyses de l'utilisateur ainsi ..

+0

Cela semble très prometteur! Aussi avez-vous une idée de comment livrer les pièces jointes? – softwaresupply

+0

Désolé, pas encore. Je travaille toujours sur ce genre de choses.Je suis encore à quelques jours de comprendre les meilleures pratiques sur celui-là. Je crois que HTTP est la bonne réponse. Voici un indice ... https: //www.ejabberd.im/node/21491 – zipzit

0

Il est Layer (support Android et iOS pour le moment)

+0

Est-ce gratuit et open source? Je ne trouve rien sur le prix – softwaresupply

+0

@softwaresupply https://layer.com/plans –

+0

1 000 utilisateurs actifs par mois, 1 Go de transfert de données, 5 Go de stockage –

0

Hey Commander ce moyen facile de mettre en œuvre le chat Quickblox Api

+0

Est-ce également approprié pour la livraison de messages hors ligne (les messages doivent être livrés lorsque l'utilisateur se connecte)? Est-il possible d'utiliser des pushmails pour livrer les messages ici? – softwaresupply

+0

Comme je ne vois pas libre aussi - le probelm est - si elle est succcessfully une fois ce sera cher ... – softwaresupply

1

Vous pouvez openfire. Il a un message hors ligne et tout. Le serveur peut également être hébergé sur linux.

+0

Sonne aussi bien. Existe-t-il une API et un moyen facile de mettre en œuvre un client pour communiquer avec le serveur? – softwaresupply

+1

Bien sûr .. vous pouvez trouver une liste de clients supportés par openfire [ici] (http://www.igniterealtime.org/downloads/index.jsp). Un client Android simple peut également être implémenté en utilisant [Asmack] (https://github.com/Flowdalic/asmack). Pour la mise en œuvre, [this] (http://developer.samsung.com/technical-doc/view.do?v=T000000119) peut vous aider. –