function updateShouts(callback) { $.ajax({ type: 'GET', url: 'shout_script.php?last_id=' + last_id, async: true, cache: false, timeout: 30000, success: function(data) { // update updateShouts(); }, error: function() { updateShouts(); } }); }
<?php // connect $current = shout_pro_lastId(); while ($current == $last_id) { $current = shout_pro_lastId(); }
Wszystko działa fajnie w teorii ale uruchomienie czata i pozostawianie go działającego zabija ostatecznie serwer.
Liczba procesów (Threads_connected) powoli sobie rośnie, aż osiąga swój limit (u mnie 200 ale to bez znaczenia).
Co ciekawe zamknięcie strony z czatem nie powoduje zamknięcia tych połączeń - jest sobie ich 20 to tyle zostaje.
Jakieś sugestie?
Większość przykładów long polling opiera się o odczycie w oparciu o pliki gdzie nie trzeba się tym przejmować po prostu.
Wiem, że PHP + mySQL to nie jest najszczęśliwsze rozwiązanie ale czasem jesteśmy na nie skazani.