Mercurial > cosocket
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