Retour sur your-socket

Documentation YSServer v0.1

Pour commencer

Pour créer une nouvelle application il suffit de démarrer a partir d'un script PHP ou PERL vierge. Dans ce script, trois fonctions de base peuvent êtres appelées : onNewClient, onLostClient, onClientMessage. Chaque fonction est automatiquement appelée quand l'évènement de connection, déconnection ou d'arrivée d'un message survient. A partir de là et en appelant des fonctions telles que sendMessage, vous pouvez réaliser des applications Multi-Utilisateurs complexes.

Base d'application PERL et PHP :


PHPPERL
<?php function onNewClient($uid){ // votre code ici } function onLostClient($uid){ // votre code ici } function onClientMessage($uid,$msg){ // votre code ici } ?> sub onNewClient{ $uid=shift; ## votre code ici } sub onLostClient{ $uid=shift; ## votre code ici } sub onClientMessage{ $uid=shift;$msg=shift ## votre code ici } 1; ## <-- obligatoire


Le paramètre $uid (user id) est le numéro du client. Chaque client à un numéro unique attribué par le serveur lors de sa connection.

Bien sur, les scripts ne sont pas limités à cette écriture. Vous pouvez ajouter autant de fonctions que nécessaires, utiliser des bases de données ou n'importe quel module propre à PHP ou PERL comme dans n'importe lequel de vos scripts.

Notez que la méthode onCloseClient indique le uid du client qui vient de se déconnecter. En revanche le serveur gardera en mémoire tous ses paramètres pour vous permettre d'utiliser les filtres basés sur son uid ou sur les groupes auxquels le client appartenait. Il permet donc par exemple d'envoyer un message à tous les clients de son groupe. Une fois la fonction onCloseClient terminée, les données de ce client sont définitivement détruites.


Les filtres

Un filtre est une chaîne de caractères permettant de cibler précisément un ou plusieurs clients en fonction de différents paramètres. Il s'agit d'une équation qu'il vous appartient de construire. Les filtres sont traités en C++ et permettent d'éviter les boucles de recherches gourmandes en ressources dans votre script d'application. Par exemple :



Il est possible d'imbriquer des filtres ou de rechercher avec des expressions régulières.



Les méthodes

NomDescription
Serveur
setServerEOF(caractere) Défini le caractère de fin de chaîne des messages entre le serveur et le client.
setBufferTime(valeur) Défini le temps (en ms) de remplissage du buffer des sockets.
Client
sendMessage(message,FiltreClient) Envoie un message à tous les clients donnés par le filtre.
closeClient(FiltreClient) Déconnecte tous les clients donnés par le filtre.
setPersonalData(texte,FiltreClient) Applique les données personnelles des clients donnés par le filtre.
sharePersonalData(texte,FiltreClientA,FiltreClientB,parser) Envoies les données personnelles des clients donnés par le FiltreClientA à tous les clients donnés par le FiltreClientB. Les données sont séparées par la chaîne "parser".
Gestion des groupes de clients
addClientGroup(nom,FiltreClient) Ajoute à tous les clients donnés par le filtre, le groupe nom.
removeClientGroup(FiltreGroupe,FiltreClient) Retire à tous les clients donnés par le filtreClient tous les groupes donnés par le FiltreGroupe.
sendGroupCount(texte,FiltreClientA,FiltreClientB,parserA,parserB,encode) Permet d'envoyer a certains clients une liste de groupes ainsi que le nombre de clients qui y sont attachés.