De voorbije dagen was ik wederom verbaasd over de snelheid waarmee in Python code geschreven kan worden. Volgende aanpassingen heb ik gemaakt:
- De server kan nu ook connecties van buiten localhost aannemen (hetgeen nogal cruciaal is voor het verbinden van meerdere presence agents), door gebruik te maken van het IP-adres 0.0.0.0 in plaats van gethostname() bij het bind()en. De laatste optie was degene die vermeld was in de officiële Python documentatie, maar blijkt -ondanks wat daar gezegd wordt- enkel te werken voor localhost.
- Er is nu een (redelijk basic) client die gebruikt kan worden door de presence agent om te communiceren met de server.
- De server heeft nu de mogelijkheid om meerdere accounts te voorzien, zodat één server kan gebruikt worden voor een hele hoop gebruikers. Per gebruiker wordt dan een nieuw thread gestart dat ongeveer dezelfde functionaliteit biedt als de oorspronkelijke server. De server is daarvoor opgesplitst in twee klassen: UserHandler (dat voor één gebruiker de activiteit bijhoudt) en PresenceServer (dat inkomende connecties accepteert, UserHandlers aanmaakt en verbindingen doorverwijst naar de juiste UserHandler).
- Er worden nu meerdere presence levels ondersteund, in de vorm van integers. Voorheen was het voor een agent enkel mogelijk om ‘present’ of ‘away’ te zijn, terwijl er nu een getal kan gekozen worden om het ‘aanwezigheidsniveau’ aan te geven.
- Tenslotte is de code nog wat opgeschoond, met aandacht voor error handling. Bijkomend worden de UserHandlers ook gesloten wanneer er geen clients meer mee verbonden zijn, om resources te besparen.

Plaats een reactie
Feed met reacties voor dit artikel