[Android] berichtendienst

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Rednas_N
  • Registratie: September 2010
  • Laatst online: 21:03
Beste lezers,

Een tijd geleden heb ik een applicatie gemaakt waarbij mensen berichten via een website naar hun telefoon konden sturen. Dit ging doormiddel van een MQTT server, best interessant vond ik.

Nu wil ik voor Android zoiets maken dat vergelijkbaar is met WhatsApp en XMS Messenger, maar meer als doel om er wat van te leren, en als het uiteindelijk iets is, kan het altijd nog in de Market. Ik heb gelezen dat WhatsApp gebruikt maakt van het XMPP protocol. Ik heb inmiddels al een XMPP server (OpenFire) geïnstalleerd, en deze functioneert ook.

Daarnaast heb ik ook gelezen dat WhatsApp een custom XMPP server gebruikt, weet iemand hier toevallig iets meer van? Want over het algemeen heb je als gebruiker bij XMPP een gebruikersnaam en een wachtwoord. Ik vraag me dan af hoe WhatsApp of XMS Messenger dit precies doet, aangezien ik daar alleen mijn telefoonnummer hoef in te vullen, en dus geen wachtwoord.

Kunnen jullie mij hier misschien iets over uitleggen, hoe het precies zit met het wachtwoord en gebruikersnaam, is dit verplicht bij XMPP? En hoe kan ik hier het beste mee beginnen?

Ik vraag dit hier omdat ik zelf ook al het een en ander aan zoekwerk heb gedaan, maar ik kon nergens specifiek vinden hoe het precies zit met users.

[ Voor 6% gewijzigd door Rednas_N op 13-12-2011 20:54 ]

Just do it.


Acties:
  • 0 Henk 'm!

  • dutchy188
  • Registratie: Oktober 2011
  • Laatst online: 16-10-2023
Even een brainstormpje, bij het veriferen van whatsupp krijg je een verificatie sms.
Kan het niet zijn dat deze sms het wachtwoord bevat van het betreffende account??

Acties:
  • 0 Henk 'm!

  • Rednas_N
  • Registratie: September 2010
  • Laatst online: 21:03
dutchy188 schreef op dinsdag 13 december 2011 @ 20:59:
Even een brainstormpje, bij het veriferen van whatsupp krijg je een verificatie sms.
Kan het niet zijn dat deze sms het wachtwoord bevat van het betreffende account??
Daar had ik inderdaad ook al aan gedacht, maar volgens mij is deze SMS de bevestiging dat je nummer juist is. Maar het zou natuurlijk ook kunnen dat dat dan het wachtwoord zou zijn.

Just do it.


Acties:
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 17:21

Rmg

Ik dacht dat whatsapp -> android notificaties via c2md (2 3) ging wat weer gewoon aan je deviceid/googleaccount en applicatie ID hangt

[ Voor 52% gewijzigd door Rmg op 13-12-2011 21:04 ]


Acties:
  • 0 Henk 'm!

  • Rednas_N
  • Registratie: September 2010
  • Laatst online: 21:03
Hm, dat zou ook nog kunnen, eens kijken wat dat precies inhoudt.

Edit;
Ik heb even het een en ander gelezen. Maar C2DM is eigenlijk gewoon een notificatie die naar je telefoon gestuurd wordt op het moment dat je een nieuw bericht hebt. Maar hoe wordt dit bericht dan van de server naar de telefoon gehaald?

[ Voor 65% gewijzigd door Rednas_N op 13-12-2011 21:41 ]

Just do it.


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 14:50
Hoe bedoel je dat laatste?

Acties:
  • 0 Henk 'm!

  • Rednas_N
  • Registratie: September 2010
  • Laatst online: 21:03
Hier staat dit;
"It allows third-party application servers to send lightweight messages to their Android applications. The messaging service is not designed for sending a lot of user content via the messages. Rather, it should be used to tell the application that there is new data on the server, so that the application can fetch it".

Als ik het goed begrijp, dan krijgt het Android device een notificatie, dat er een nieuw bericht is. En vervolgens haalt de applicatie het bericht van de server af? Of begrijp ik het nu verkeerd? En zouden ze dit bij WhatsApp of XMS ook doen?

Just do it.


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 14:50
Google stuurt het pushbericht gewoon naar je telefoon net als dat je een SMSbericht binnen zou krijgen. Die kun je dan afvangen in je applicatie en er mee doen wat je wilt. Hoe WhatsApp dat precies doet durf ik niet te zeggen, daar kun je namelijk je berichtengeschiedenis opnieuw ophalen, maar dat werkt denk ik gewoon via een API waar gegevens uit gepulld worden.

Acties:
  • 0 Henk 'm!

  • Rednas_N
  • Registratie: September 2010
  • Laatst online: 21:03
Je berichtgeschiedenis staat volgens mij gewoon lokaal op je telefoon in een xml bestand?

Just do it.


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 14:50
Als ik de app verwijder en opnieuw installeer niet meer :) Dan vraagt ie volgens mij of hij het van de server af moet halen.

Acties:
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 17:21

Rmg

Rednas_N schreef op dinsdag 13 december 2011 @ 22:00:
Hier staat dit;
"It allows third-party application servers to send lightweight messages to their Android applications. The messaging service is not designed for sending a lot of user content via the messages. Rather, it should be used to tell the application that there is new data on the server, so that the application can fetch it".

Als ik het goed begrijp, dan krijgt het Android device een notificatie, dat er een nieuw bericht is. En vervolgens haalt de applicatie het bericht van de server af? Of begrijp ik het nu verkeerd? En zouden ze dit bij WhatsApp of XMS ook doen?
Volgens mij wel idd, je android device krijgt een bericht bestemd voor jouw device + een applicatie id. de applicatie krijgt daar notificatie van en kan dan messages gaan pullen.

dit is qua batterij en netwerkverbruik de manier die google aanraad en weet vrij zeker dat iig whatsapp hiervan gebruik maakt

Acties:
  • 0 Henk 'm!

  • Rednas_N
  • Registratie: September 2010
  • Laatst online: 21:03
Maar hier komt dan geen XMPP aan te pas, of wel?

Just do it.


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 14:50
Nope, heb je niks mee te maken zover ik weet.

Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 14:50
Als je meer wilt weten over C2DM kan ik je overigens deze video aanraden (wel lang, maar je kunt stukje kijken), daar wordt het hele concept en de concrete implementatie erg duidelijk uiteen gezet: YouTube: Mastering C2DM: The Android Cloud to Device Messaging Framework

Acties:
  • 0 Henk 'm!

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 18-03 14:00

Tim

Jawel, wat Google aanraad is om C2DM berichten alleen een notificatie te laten bevatten. De applicatie gebruikt vervolgens XMPP om het bericht zelf te ontvangen. Misschien stopt WhatsApp het bericht zelf ook in de C2DM notificatie, dat zou best kunnen (het maximum is 1kb).
De rest van de applicatie (versturen, andere mensen met WhatsApp detecteren) gaat allemaal via XMPP.

Verder: het standaard XMPP protocol stelt eigenlijk niet zoveel voor, wat het nuttig maakt is dat het makkelijk is uit te breiden (zie ook http://xmpp.org/xmpp-protocols/xmpp-extensions/ voor een lijst met "standaard" extensions).

Acties:
  • 0 Henk 'm!

  • Rednas_N
  • Registratie: September 2010
  • Laatst online: 21:03
Ik kan best begrijpen dat WhatsApp C2DM gebruikt, dus op het moment dat de applicatie een bericht verstuurd, stuurt C2DM een notificatie naar de desbetreffende gebruiker. Vervolgens vraagt de ontvanger aan een XMPP server om de berichten op te halen?

Maar hoe authenticeert de gebruiker zich dan bij de XMPP server? Want je hebt dan nog steeds geen wachtwoord, wel een gebruikersnaam, en dat is volgens mij je telefoonnummer. Het kan zijn dat ik er nu compleet naast zit hoor.

Just do it.


Acties:
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 17:21

Rmg

Rednas_N schreef op woensdag 14 december 2011 @ 08:36:
Ik kan best begrijpen dat WhatsApp C2DM gebruikt, dus op het moment dat de applicatie een bericht verstuurd, stuurt C2DM een notificatie naar de desbetreffende gebruiker. Vervolgens vraagt de ontvanger aan een XMPP server om de berichten op te halen?

Maar hoe authenticeert de gebruiker zich dan bij de XMPP server? Want je hebt dan nog steeds geen wachtwoord, wel een gebruikersnaam, en dat is volgens mij je telefoonnummer. Het kan zijn dat ik er nu compleet naast zit hoor.
De whatsapp applicatie heeft toegang tot jouw telefoonnummer + heeft een gegenereerd wachtwoord ( aanmeldingssms) . Die ontvangt de C2DM notificatie en authenticeerd zichzelf bij de XMPP server :?

Acties:
  • 0 Henk 'm!

  • Rednas_N
  • Registratie: September 2010
  • Laatst online: 21:03
Ik heb zojuist even de video bekeken waarvan Avalaxy de link stuurde. Ik denk dat ik het idee nu begrijp, In deze video gebruikte ze een HTTPpost op de applicatie server, in mijn geval zou dat dan via XMPP gaan denk ik. Ik heb me inmiddels ook al aangemeld bij C2DM, nu nog even wachten totdat ik toegang krijg.

Ik ga er binnenkort eens mee stoeien als ik toegang krijg. Zou je ook de auth token kunnen gebruiken om een gebruiker te registeren bij de XMPP server?

Edit;
Ik heb zojuist toegang gekregen tot de C2DM server, vanavond even proberen!

[ Voor 19% gewijzigd door Rednas_N op 14-12-2011 09:51 ]

Just do it.


Acties:
  • 0 Henk 'm!

  • Rednas_N
  • Registratie: September 2010
  • Laatst online: 21:03
Inmiddels heb ik C2DM zover gekregen dat ik een registrationkey kan opvragen, en kan ik vervolgens de desbetreffende 'gebruiker' opslaan in een database door middel van een HTTP Post. Ik heb het op dit moment via de video gedaan, en dat is dus de registration key opslaan, en het telefoonnummer. Dit gebeurd op de zogenaamde 'Applicatieserver'.

Ik heb even in de tabel gekeken van de XMPP server (in dit geval OpenFire), ik denk dat ik nu ook begrijp hoe ik users kan aanmaken hierin. Dat is in theorie gewoon het telefoonnummer als username, en de registratiekey als password. Op het moment dat C2DM een notificatie stuurt naar naar mijn telefoon, om te zeggen dat er een nieuw bericht is, kan de telefoonapplicatie dus inloggen met de registratiekey en de username, in dit geval een telefoonnummer. En vervolgens kunnen de berichten van de XMPP server gehaald worden. Klopt het wat ik hier suggereer?

[ Voor 3% gewijzigd door Rednas_N op 14-12-2011 19:27 ]

Just do it.


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:08

Creepy

Tactical Espionage Splatterer

Test het en je weet het? Sorry, maar iets meer eigen inzet mag wel.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1