Een Jabber Client voor iOS bouwen serverinstellingen

In deze tutorial zullen we een Jabber Client voor iOS bouwen. De applicatie die in deze serie is ontwikkeld, stelt gebruikers in staat om in te loggen, vrienden toe te voegen en berichten te verzenden. Tijdens het bouwen van deze app zullen we beschrijven hoe een jabber-server moet worden geïnstalleerd en geconfigureerd, accounts kunnen worden aangemaakt en met de server kunnen communiceren vanuit een iOS-applicatie. Om een ​​chatomgeving te simuleren, bouwen we een scenario met twee gebruikers: de ene gebruiker chat van een iPhone-app en de andere gebruikt iChat.

Wat is Jabber?

Jabber is geen tool maar een community die XMPP bouwt en onderhoudt. XMPP staat voor eXtensible Messaging en Presence Protocol. Zo'n protocol is open standaard en gericht op berichtenuitwisseling. De oorspronkelijke naam van het protocol was Jabber, dus de termen worden vaak door elkaar gebruikt. Het uitwisselen van berichten gebeurt bijna in realtime, dus het is een ideale infrastructuur om chatachtige applicaties te bouwen. Het protocol implementeert ook een mechanisme om aanwezigheidsinformatie te melden (of een gebruiker nu online is of niet) en het onderhoud van een contactenlijst. XMPP is een grondig protocol, dat ook door grote bedrijven zoals Google is goedgekeurd om hun Instant Messaging-service te bouwen.

Hoe werkt het?

Het XMPP-protocol is gebaseerd op XML (Extensible Markup Language), dus elk type bericht (bijvoorbeeld inloggen, verzenden van berichten, etc.) is gecodeerd in dit formaat. Stel bijvoorbeeld dat president Obama een bericht stuurt naar Hillary. Het formaat van het bericht zou ongeveer zo zijn:

  Hallo daar 

Voor de volledigheid moeten we vermelden dat XMPP een gedecentraliseerde service is, net als e-mail. Dit betekent dat de Hillary- en Obama-accounts mogelijk op verschillende servers staan ​​(bijv. [email protected] en [email protected]). Het bericht wordt sowieso afgeleverd omdat XMPP server-naar-server communicatie mogelijk maakt. Als Hillary offline is, wordt het bericht in de cache opgeslagen op de server en bezorgd wanneer ze online gaat. Om de zaken simpel te houden en de aandacht van de klant te houden, zullen we in deze tutorial een scenario met slechts één server overwegen.

Jabber installeren

Er zijn veel implementaties van Jabber-servers. Een mooie complete lijst is hier beschikbaar: Xmpp. In deze tutorial gebruiken we jeabbered omdat het eenvoudig te installeren en configureren is. Ejabbered is ontwikkeld in Erlang, het is opensource en kan werken op veel besturingssystemen, waaronder Mac OS X. De keuze voor een dergelijke implementatie is ook te danken aan de eenvoudige webinterface waarmee snel de service kan worden geconfigureerd en gebruikersaccounts kunnen worden beheerd. Ejabbered is hier gratis beschikbaar. We selecteren de Mac OS X-versie en starten de download. In deze tutorial gebruiken we versie 2.1.8.

Het installatieproces is erg gemakkelijk en intuïtief. Het gedownloade bestand is in feite een applicatie die ons helpt bij het installatieproces door middel van een wizard. Zodra dit is voltooid, zouden we een map met de naam 'ejabbered-2.1.8' moeten hebben in onze 'Applications' directory. De map moet de volgende submappen bevatten.

De belangrijkste mappen zijn 'conf' en 'bin'. De eerste bevat configuratiebestanden om gebruikersrechten te beheren. De tweede bevat opdrachten om de server te beheren. Laten we een terminal openen en naar de bin-map gaan. We zouden zoiets moeten zien.

De belangrijkste commando's zijn 'start' en 'stop'. Als ze niet uitvoerbaar zijn, kun je ze zo maken door de volgende shell-opdracht te geven:

chmod 755 stop
start chmod 755

De map bevat ook een script 'postinstall.sh' dat direct na de installatie moet worden uitgevoerd om de beheerder te maken. Het script verwacht drie parameters: gebruiker, domein en wachtwoord. Dus we kunnen het zo uitvoeren:

./postinstall.sh cesare jerry.local wachtwoord

We hebben jerry.local gekozen, de naam van de lokale computer, als domein, maar 'localhost' zou ook werken. Hiermee wordt de server gestart en wordt deze gebruiker toegevoegd als beheerder. Om te controleren of de configuratie correct is, kunnen we het bestand 'ejabberd.cfg' openen in de map 'con'. In het gedeelte Toegangscontrolelijst moet dit het volgende bevatten
uitspraak

 acl, admin, user, "cesare", "jerry.local".

Nu zou je de jabberserver moeten kunnen starten door te typen

./begin

Dit opent standaard een webpagina die u op de hoogte brengt dat de server is gestart.

Jabber-gebruikers configureren

Op dit moment heeft onze service alleen beheerders. We moeten het vullen met ten minste één gebruiker. De vorige webpagina bevat een koppeling naar de beheerinterface, die beschikbaar is op http: // localhost: 5280 / admin /. Zodra u bent aangemeld als beheerder, ziet u een console zoals de volgende

We klikken op het item "Toegangscontrolelijsten" en de lijst met geregistreerde gebruikers verschijnt. We maken een nieuwe gebruiker, genaamd 'alterego', door zijn gegevens in te voeren en op verzenden te klikken

De server testen

Nu kunnen we de server testen en controleren of deze correct werkt. Om het te testen, kunnen we twee bureaubladtoepassingen uitvoeren die het XMPP-protocol ondersteunen. Een daarvan is iChat, dat wordt meegeleverd met Mac OS X. In deze lijst vindt u een andere, die het best bij u past:

http://xmpp.org/xmpp-software/clients/.

In ons geval zullen we Adium gebruiken, dat hier beschikbaar is. We zullen een account configureren voor 'cesare' op iChat en een ander account voor 'altergo' op Adium. Laten we beginnen met iChat. Start de applicatie en open het menu Voorkeuren en selecteer het tabblad Accounts.

Met de knoppen "+" kunt u een nieuw account toevoegen, dat we vullen met de volgende gegevens:

De eerste verbinding kan enige tijd duren (bijvoorbeeld 30 seconden). iChat zal u waarschijnlijk vragen om het onbekende certificaat te accepteren dat bij de server is meegeleverd. Klik gewoon op Doorgaan.

Nadat u bent verbonden, kunt u uw status wijzigen door middel van het vervolgkeuzemenu bovenaan in het venster. Laten we het online zetten. Laten we nu naar Adium verhuizen. We starten de applicatie en we openen het voorkeurenmenu. Het toevoegen van een nieuw account lijkt veel op iChat. Hier voeren we de 'alterego'-details in.

In dit geval moeten we ook de server specificeren die jabber draait. We selecteren het tabblad 'Opties' en vullen het als volgt in:

Adium zal u ook vragen om het certificaat te accepteren. Nu moeten we twee gebruikers verbinden met de server door middel van twee verschillende applicaties. Dit moet ook worden weerspiegeld in het logbestand van ejabbered. Het bestand bevindt zich op: '/Applications/ejabberd-2.1.8/logs/ejabberd.log' en zou de volgende berichten moeten bevatten

Chatten gaat over vriendschap. Hoewel beide gebruikers verbonden zijn met de server, kunnen ze niet chatten tenzij ze elkaar als vrienden toevoegen. Het scenario zal de volgende zijn: cesare voegt alterego toe aan zijn lijst. In het iChat-venster selecteren we onderaan de knop "+".

en we betreden de jabber id '[email protected]'

Op Adium ontvangen we een autorisatieverzoek als volgt

Zodra alterego het accepteert, zouden we moeten eindigen zoals in de volgende afbeelding, cesare is vriend met altergo (en vice versa) en beide kunnen berichten uitwisselen.

We hebben alle functionaliteiten getest die nodig zijn voor de server:

  • Log in
  • buddylijst bouwen
  • uitwisseling van berichten

Dit was nodig om ervoor te zorgen dat mogelijke fouten in de iOS-applicatie niet te wijten zijn aan onjuiste serverconfiguraties. Nu zijn we klaar om de ontwikkeling van de iOS-applicatie te bestuderen.

Broncode

De volledige broncode voor dit project is hier te vinden op GitHub.