Ich hatte mir oberflächlich Ratchet angeguckt und da musste man eine run Methode aufrufen, von der ich den Eindruck hatte, dass sie nicht mehr zurückkommt und als Event-Verteiler für registrierte Listener arbeitet. D.h. du hättest keinen eigenen Code mehr, der unabhängig vom Socket-Listener läuft. Ich habe mir Ratchet aber nicht SO genau angeguckt. Es mag Möglichkeiten geben, eigenen Code parallel oder quasiparallel zum Ratchet-Listener laufen zu lassen.
Wenn du einen eigenen Hub baust, wie dann? Mit den Socket-Funktionen von PHP oder mit einem anderen Helper? Wenn Socket-Funktionen, mit socket_set_nonblock()? Dann KÖNNTEST Du abwechselnd einen socket_read() auf zwei unterschiedliche Input-Sockets machen. Einer ist von außen zugänglich, der andere nicht und dient der internen - und ggf. höher autorisierten - Kommunikation. Damit kannst Du dann sicherstellen, dass nicht irgendwer dein Passwort für den Command-Level errät und von außen die Kontrolle übernimmt. Ich würde eine einheitliche Kommunikationstechnik nach wie vor für vorteilhaft halten. Dann kannst Du für beide Seiten den gleichen Infrastruktur-Code verwenden.
Rolf