Socket.io de source php
J'ai développé une connexion client-serveur en utilisant socket.io
, et je suis heureux de dire que cela fonctionne parfaitement.
Le problème vient du fait que j'ai besoin de créer de la connexion de sources de php ( et non pas "echo html javascript" ). Quelque chose Comme un
$socket = socket.createConectionJS;
J'ai essayé difrerent moyens, tels que :
- exécuter le code du serveur ( avec spiderMonkey, et le nœud )
- la création d'un phpSocket et de le connecter à l'ServerSocket.j( mais obbiously le format est différent). ou ...
- Enfin j'ai essayé par la poste avec curl, où j'ai eu accès à la serverscript, mais je ne peux pas ouvrir une connexion
Je pense que la seule façon de le résoudre est de simuler le web de connexion de socket par la création d'un socket de la même façon que de support.io classe de le faire, mais en php
Anny socket.io expert pourrait aider ?
Tnks ! ! _
J'ai fait un PHP de connexion de socket script il y a longtemps, mais ne me souviens pas des détails. Vous avez besoin d'avoir un script qui démarre l'écoute d'un socket spécifique, puis des boucles d'ajouter de nouvelles connexions à une liste d'abonnés, ainsi que de recevoir/envoyer des messages de données à ces abonnés. Ce script doit fonctionner en permanence et ne jamais s'arrêter.
vous aurez besoin d'un VPS ou serveur dédié afin d'avoir accès aux sockets plus probable. - Je configurer un VPS et créé un script qui permettrait de faire en sorte que le PHP serveur socket commence toujours au démarrage.
vous aurez besoin d'un VPS ou serveur dédié afin d'avoir accès aux sockets plus probable. - Je configurer un VPS et créé un script qui permettrait de faire en sorte que le PHP serveur socket commence toujours au démarrage.
OriginalL'auteur Marlon | 2011-06-03
Vous devez vous connecter pour publier un commentaire.
Ouais, j'ai eu un rapide aller à ce moment-là. J'ai la chance d'avoir un assez avancée web de grattage de la bibliothèque déjà construit en PHP, donc j'ai juste branché le XML à partir d'TamperData (plugin firefox), et modifié un peu les choses.
Pour émuler xhr-interrogation (mon proxy n'autorise pas les websockets, et ce semblait plus simple de toute façon)...
Faire une demande à:
(Le 13377... nombre est juste un timestamp, utiliser time() pour générer).
Qui doit retourner quelque chose comme ceci:
Saisir le grand nombre à l'avant, qui est votre "[CONNECT_ID]", que vous pourrez garder pour le reste de la session. Maintenant faire une autre demande:
Et vous en obtiendrez quelque chose comme ::1
C'est à peu près aussi loin que j'ai pris la peine de le suivre, tout cela a l'air assez basique à partir de là... rien de spécial à en-têtes ou quelque chose de sournois. Vous suggérons d'utiliser TamperData ou un renifleur de paquets, et il suffit de suivre vous-même. Ici, c'est la sortie de mon code:
Et sur le nœud.js/socket.io côté, en cours d'exécution sur la base d'exemples à partir de leur page d'accueil:
OriginalL'auteur Orwellophile
Nous avons développé et utilisé dans la production de L'éléphant.io
Essentiellement, nous l'utilisons dans notre serveur cron-emplois pour informer de notre front, et dans notre Symfony2 Api pour pousser certains événements à l'avant.
Un coup d'oeil, elle pourrait vous aider.
Meilleur
OriginalL'auteur guillaumepotier
Je cherchais vraiment un moyen simple d'obtenir de PHP pour envoyer un socket.io message aux clients.
Cela ne nécessite aucune des bibliothèques PHP qu'il utilise des sockets.
Au lieu d'essayer de se connecter à la websocket interface comme beaucoup d'autres solutions, il suffit de connecter le node.js serveur et d'utiliser
.on('data')
à recevoir le message.Puis,
socket.io
peuvent envoyer aux clients.Je pense que beaucoup de ces pléthorique de solutions de tenter d'obtenir l'exécution de PHP websocket protocoles.
Pourquoi s'embêter?
Détecter une connexion à partir de votre serveur PHP en Node.js comme ceci:
Voici le incroyablement simple code php - j'ai enveloppé dans une fonction - vous pouvez venir avec quelque chose de mieux.
Noter que
8080
est le port de mon Node.js le serveur que vous souhaitez modifier.Vous pouvez l'utiliser comme ceci:
sio_message("chat message","Hello from PHP!");
Vous pouvez également envoyer des tableaux qui sont convertis en json et transmis aux clients.
sio_message("DataUpdate",Array("Data1" => "something", "Data2" => "something else"));
C'est un bon moyen de "confiance" que vos clients sont l'obtention de légitime des messages à partir du serveur.
Vous pouvez également avoir PHP passer le long de la base de données mises à jour sans avoir des centaines de clients à interroger la base de données.
Je souhaite que j'avais trouvé plus tôt - espérons que cette aide!
OriginalL'auteur user1274820