changeset 65:75866941af83

Made keepalive optional
author Atul Varma <varmaa@toolness.com>
date Thu, 30 Apr 2009 13:55:47 +0000
parents 559c48a58254
children 3d5683e4b0e2
files openwebchat.py
diffstat 1 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/openwebchat.py	Thu Apr 30 06:42:13 2009 -0700
+++ b/openwebchat.py	Thu Apr 30 13:55:47 2009 +0000
@@ -69,7 +69,8 @@
                   'js' : 'text/javascript',
                   'css' : 'text/css'}
 
-    def __init__(self, addr, conversations):
+    def __init__(self, addr, conversations, is_keep_alive = False):
+        self._is_keep_alive = is_keep_alive
         self._num_connections = 0
         self._convs = conversations
         self._server = CoroutineSocketServer(addr,
@@ -81,9 +82,10 @@
     def _until_http_response_sent(self, msg = '', mimetype = 'text/plain',
                                   length = None, code = 200,
                                   additional_headers = None):
-        headers = {'Keep-Alive': 'timeout=99, max=99',
-                   'Connection': 'Keep-Alive',
-                   'Content-Type': mimetype}
+        headers = {'Content-Type': mimetype}
+        if self._is_keep_alive:
+            headers.update({'Keep-Alive': 'timeout=99, max=99',
+                            'Connection': 'Keep-Alive'})
         if additional_headers:
             headers.update(additional_headers)
         if not mimetype.startswith('multipart'):
@@ -120,7 +122,10 @@
     def _server_coroutine(self, addr):
         self._num_connections += 1
         try:
-            while 1:
+            if self._is_keep_alive:
+                while 1:
+                    yield self._until_one_request_processed(addr)
+            else:
                 yield self._until_one_request_processed(addr)
         finally:
             self._num_connections -= 1