Hi,
Nein, jedenfalls nicht, wenn du das PHP-Script nach einer Anfrage beendest. Server können mit keiner Technik (bezogen auf HTTP) zuverlässig Verbindungen zu Clients aufbauen. Das verhindern Techniken wie NAT und Proxy. Der Verbindungsaufbau muss vom Client aus erfolgen. Der Server kann lediglich die Verbindung bis zum Timeout offenhalten. Wenn du PHP auf der Serverseite hast, heißt das, dass das PHP-Script nicht beendet werden darf, wenn du sofort etwas an den Client senden möchtest und nicht warten möchtest, bis der den nächsten Pull macht.
Und dann ist außerdem noch die große Frage, wie das PHP-Script Änderungen feststellen soll, aufgrund derer etwas zum Client geschickt werden muss.
sprich, es müsste in einer anderen Sprache programmiert werden?
nein, das Problem ist von der Sprache weitgehend unabhängig. Das Problem liegt in der Natur von Client/Server-Systemen.
Ein Server ist eine Software, die auf Anfragen wartet und darauf reagiert; ein Client ist die Software auf der Gegenseite, die was vom Server will. Mit deiner Aufgabenstellung drehst du die Rolle aber um. In deinem Szenario sind eigentlich die Rechner der beiden Versuchspersonen die Server, denn die sollen darauf warten, dass der Rechner des Versuchsleiters (hier der Client) sich meldet und ihnen Daten schickt, und darauf sollen sie reagieren, indem sie den Teilnehmern die Aufgaben anzeigen und nach dem Lösen die Ergebnisse zurücksenden.
Dafür ist aber ein Webserver als zentrale Komponente ziemlich ungeeignet. Klar kann man die Server- und Client-Rolle technisch so beibehalten, wie du es dir ursprünglich vorgestellt hast - und dann mit Krücken wie zyklischem Polling die Clients regelmäßig beim Server nachfragen lassen, ob's endlich was Neues gibt.
Mit dem EventSource-Objekt kann man das etwas entspannen - da meldet sich der Client sozusagen beim Server und fordert, "Sag mir Bescheid, wenn's was gibt", und hält die Verbindung dann offen. Aber dazu muss natürlich am Server das Script permanent laufen und nicht, wie im Webserver-Umfeld üblich, nach dem Request sofort enden. Es wäre eine etwas andere Philosophie als üblich.
Fazit: Deine Aufgabe, die anfangs so einfach klingt, ist alles andere als trivial.
So long,
Martin
--
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy