Merge branch 'sac-a-push' of git.birds.lan:brisk into sac-a-push
[brisk.git] / web / Obj / sac-a-push.phh
index bc0ea87..1151ea1 100644 (file)
@@ -284,7 +284,7 @@ class Sac_a_push {
             }
             $write  = NULL;
             $except = NULL;
-            $num_changed_sockets = stream_select($read, $write, $except, 0, 250000);
+            $num_changed_sockets = stream_select($read, $write, $except, 5, 0);
         
             if ($num_changed_sockets == 0) {
                 printf(" no data in 5 secs ");
@@ -404,10 +404,18 @@ class Sac_a_push {
                 if (isset($this->s2u[intval($sock)])) {
                     $user = $this->s2u[intval($sock)];
                     $response = $user->rd_cache_get();
+                    if (($this->curtime - $user->lacc) <= (EXPIRE_TIME_RD / 2)) {
+                        $user->ping_req = FALSE;
+                    }
                     if ($response == "") {
                         $content = "";
                         $user->stream_main($content, $get, $post, $cookie);
-                        
+                        printf("[%s] [%d] [%d]\n", $user->name, $user->lacc, $this->curtime);
+                        if ($content == "" && $user->ping_req == FALSE 
+                            && (($this->curtime - $user->lacc) > (EXPIRE_TIME_RD / 2))) {
+                            $content = $user->stream_ping();
+                            $user->ping_req = TRUE;
+                        }
                         if ($content == "" && $user->rd_kalive_is_expired($this->curtime)) {
                             $content = $user->stream_keepalive();
                         }
@@ -417,7 +425,8 @@ class Sac_a_push {
                     }
                     
                     if ($response != "") {
-                        echo "SPIA: [".substr($response, 0, 60)."...]\n";
+                        // echo "SPIA: [".substr($response, 0, 60)."...]\n";
+                        echo "SPIA: [".$response."...]\n";
                         $response_l = mb_strlen($response, "ASCII");
                         $wret = @fwrite($sock, $response);
                         if ($wret < $response_l) {