2009-07-23 10 views
1

Je travaille sur un projet iPhone qui doit recevoir des données d'un script PHP lors de l'exécution. Ma première pensée a été d'utiliser des sockets/streams à chaque extrémité pour connecter les deux, mais j'ai du mal à trouver des informations sur la façon de le faire du côté de l'iPhone.Utiliser NSStream pour communiquer avec PHP?

Est-ce que quelqu'un a été dans cette voie qui pourrait me diriger vers des ressources utiles ou offrir des conseils? La documentation officielle semble être plus orientée vers les applications de bureau et utilise du code qui ne semble pas être supporté sur l'iPhone (NSHost).

Mise à jour: L'utilisation prévue de cette application est de recevoir des messages de journal d'un script en cours d'exécution, donc je ne peux pas utiliser une simple requête HTTP avec JSON ou XML. Dans de nombreux cas, la page sera chargée par un autre client, où le script transmettra/transmettra les messages de journal à l'iPhone.

Répondre

2

L'interrogation est mauvaise. Vous allez mâcher des piles en faisant cela.

Vous pouvez envisager d'exécuter un serveur HTTP sur l'iPhone. Découvrez this blog post; il a une implémentation d'un serveur HTTP dans Cocoa ainsi qu'un exemple de code pour l'utiliser pour la communication bidirectionnelle. La bibliothèque PHP CURL (impossible de la lier car le site ne me fait pas encore confiance, il suffit de la rechercher sur php.net) est une façon (relativement) simple et facile de faire des requêtes http avec un script PHP.

+0

Idée intéressante - cela pourrait s'avérer utile pour un certain nombre d'applications différentes. – Wilco

+0

Comment le script PHP sait-il comment contacter l'iPhone si l'iPhone est derrière les sous-réseaux et les pare-feu? –

0

Pourquoi n'utilisez-vous pas simplement HTTP? Créez un protocole ad-hoc avec XML ou JSON, utilisez POST pour la transmission de données en amont. Je suis fan de JSON pour ce genre de chose, personnellement. Le PHP, au lieu de retourner une page Web en HTML pour le rendu, devrait simplement retourner vos données dans un format JSON.

+0

Dans ce cas, cela ne fonctionnerait pas pour mes besoins (explication ajoutée ci-dessus). – Wilco

+0

Donc, vous cherchez quelque chose qui peut ouvrir la connexion du côté du script? Vous pouvez simplement utiliser une interface d'interrogation du côté de l'iPhone. Je pense que vous devez implémenter un système Push Notification pour pouvoir ouvrir la connexion du côté serveur. –

+0

Idéalement, je pense que l'iPhone interrogerait à intervalles réguliers les demandes de connexion entrantes et une fois trouvé, utiliserait une connexion continue pendant toute la durée de l'exécution du script. Dans un premier temps cependant, je serais heureux de laisser de côté la partie interrogation et de l'écouter pendant 30 secondes environ et d'accepter toutes les données entrantes. – Wilco

Questions connexes