Base de connaissance Apps Panel

S’abonner

Socket

APSocketManager est un outil permettant la gestion automatique de requêtes via un système de socket (stream) vers les serveurs d’Appspanel.

La classe crée une connexion permanente avec les serveurs et permet ainsi d’envoyer et de recevoir des données à tout moment. Ceci permet d’avoir une rapidité d’exécution des requêtes optimales, bien que plus difficile à mettre en place coté applicatif et serveur.

 

APSocketManager peut être utilisé sous forme de singleton (sharedInstance) ou via la création d’une instance d’objet classique. 

La connexion au serveur nécessite une URL et un port de connexion :

/*!
 @abstract Setup the singleton connexion to the server
 
 @param host The address of the server (usually [YOUR_APPLICATION].socket.apnl.ws)
 @param port The port that the connexion will use (eg 1337)

 @discussion It will create a read and a write stream with CFStreamCreatePairWithSocketToHost
 */
+ (void)setup:(NSString *)host port:(UInt32)port;

Les données sont ensuite envoyées au serveur et identifiées par une “action”. Un dictionnaire de données clefs/valeurs peut également être envoyé.

/*!
 @abstract Send a message on the write stream of the singleton connexion
 
 @param action Name of the action to call
 @param param NSDictionnary to send with the action
 @param delegate APSocketManagerDelegate
 */
+ (void)sendAction:(NSString *)action withParam:(NSDictionary *)param delegate:(id)delegate;

Lors de la création de la connexion, il est possible de définir un APSocketManagerConnexionDelegate qui recevra les informations de connexion à la socket, ainsi que les données que le serveur pourrait envoyer à l’application.

/**
 * Delegate APSocketManagerConnexionDelegate
 */
@protocol APSocketManagerConnexionDelegate 

/*!
 @abstract Called after the connexion Failed
 
 @param result Will always be nil
 */
- (void)socketConnexionFailed:(NSDictionary *)result;

/*!
 @abstract Called after the connexion Closed
 
 @param result Will always be nil
 */
- (void)socketConnexionDidClose:(NSDictionary *)result;

/*!
 @abstract Called after the connexion Succeed
 
 @param result Will always be nil
 */
- (void)socketConnexionSuccess:(NSDictionary *)result;

/*!
 @abstract Called after the server sent data
 
 @param result Data received from the server
 */
- (void)socketConnexionReceivedData:(NSDictionary *)result;

@end

Le protocole APSocketManagerDelegate permet quand à lui de recevoir le retour d’un sendAction. Si après un envoi de donnée au serveur, celui ci est censé répondre, la réponse arrivera via les méthodes de ce protocole.

/*!
 @abstract Called after the request Finish
 
 @param result Return the sended_action and the result (response from the server)
 */
- (void)socketFinishedDownload:(NSDictionary *)result;

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0
Vous avez d’autres questions ? Envoyer une demande