no_cache management added
[brisk.git] / web / Obj / sac-a-push.phh
index 746f7ec..e57879f 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 ");
@@ -346,7 +346,6 @@ class Sac_a_push {
                     else {
                         if (($buf = fread($sock, 512)) === FALSE) {
                             printf("error read\n");
-                            exit(123);
                         }
                         else if (strlen($buf) === 0) {
                             if ($sock === $this->list) {
@@ -371,7 +370,7 @@ class Sac_a_push {
                             }
                         }
                         else {
-                            if ($debug > 1) {
+                            if ($this->debug > 1) {
                                 print_r($read);
                             }
                             if ($sock === $this->list) {
@@ -405,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();
                         }