Il problema è che WebSockets sono progettati per esecuzione prolungata fili/processi che ciascun mantenere più connessioni event-driven, che PHP (ed è Apache coorte) creata attorno al paradigma procedurale breve durata singolo processo (es. max_execution_time
is commonly set to 30 seconds, e la sessione è single threaded).
Ciò non vuol dire che sia impossibile scrivere un'implementazione del server WebSockets in PHP. Sono a conoscenza dell'esistenza di almeno un progetto con done exactly this (ma si noti che anche questo esempio viene eseguito dalla riga di comando, non tramite mod_php
). Ma è probabile che l'implementazione di PHP di WebSockets sia incompatibile con l'installazione dell'hosting economico/condiviso in cui PHP è più comunemente usato.
Quindi, mentre è possibile farlo in PHP, si finisce per dover eseguire comunque un processo server separato (da Apache), e se si è sul tipo di hosting che consente processi separati del server, allora è più facile scrivere WebSockets codice in qualcosa che è stato progettato per la programmazione basata su eventi.
Se non hai intenzione di servire decine di migliaia di connessioni simultanee duplex, è probabile che starai meglio usando una combinazione di AJAX e SSE con il tuo back-end PHP.
Potresti essere interessato a leggere su NodeJS e socket.io. Dipende dal tuo progetto ma potrebbe darti quello che ti serve: [nodejs.org] (http://nodejs.org) [socket.io] (http://socket.io) – imperium2335