2010-08-24 5 views
1

1- Disons que l'adresse IP de mon ordinateur est 111.11.111.11, et que le serveur sur lequel mon script php est activé est 222.22.222.22, donc si j'accède et exécute le script php qui se trouve sur le serveur et démarre un serveur socket, ip mes clients doivent-ils se connecter?Questions sur les sockets en PHP?

2- Est-il possible d'avoir une socket fonctionnant sur php qui continue à lire, et répondant aux clients jusqu'à ce que je ferme le navigateur, Donc, ce que je cherche à faire est de démarrer une socket qui continue à lire, et accepter les clients, et continue de communiquer avec eux plusieurs fois avec chacun.

merci pour la réponse, mais je pense que je n'ai pas assez expliqué sur ma question 2, alors laissez-moi le rendre plus facile: Est-il possible de créer un serveur de discussion en utilisant php? parce que le point que j'entreprenais était s'il est possible d'accepter plusieurs clients et les garder alove.

Répondre

1
  1. 222,22,222,22. Mais il semble que vous démarriez un serveur socket en réponse à une requête HTTP. Probablement, cela ne fonctionnera pas comme prévu, puisque l'interpréteur PHP se termine après l'envoi de la réponse. Si vous disposiez d'autorisations, vous pouvez utiliser un processus de serveur de socket distinct, mais je ne sais pas ce que cela permettrait. Non. Même si vous avez laissé l'interpréteur s'exécuter, il n'y a aucun moyen de savoir quand le navigateur se ferme. Le plus proche que vous pouvez obtenir est de déterminer le navigateur (tel que déterminé par les cookies ou IP) arrête de communiquer avec vous.

1

1- 222.22.222.22, l'adresse IP de votre serveur. 2- Quand un visiteur arrive, vous pouvez générer un 'processus de socket' et implémenter une application 'heartbeat' côté client en utilisant JavaScript/AJAX, mais cela implique que vous exécutiez le script backend (peut-être) pendant une longue période, peut causer des problèmes (Comme avoir beaucoup de processus PHP ouverts, en fonction de la configuration de votre serveur web cela peut causer des problèmes)