On 1/4/2011 1:26 AM, sol myr wrote:
Filip, thanks for your reply.
You are correct that the server simply writes data, which we can format any way 
we like.
However, we were wondering whether Tomcat has any utilities/configurations to 
make it easier. E.g:

1) If we use multipart format (to separate between messages), does 
Tomcat/Apache have utilities to make it easier? Or should we hand-code the 
appropriate headers, separators, etc?
Not in Tomcat 6. The risk of using any utilities out there, is that they will want to block on inputstream.read until the entire request body has been read, and I suspect that's not what you want.
2) If we rely on "Content-length:" (to tell when one message ends and another begins), this header 
is usually automatically managed by Tomcat, so we'd have to ask Tomcat to manage it differently (otherwise, 
it might calculate one "content-length" for all messages put together, or it might omit it 
altogether and use "chunked" instead - which is also be an option, but then how do we tell tomcat 
to have a chunk per message).
I would not use Content-Length, by doing so, you're setting a limit to yourself 
on how long the Comet request is alive

best
Filip

Thanks again

--- On Mon, 1/3/11, Filip Hanik - Dev Lists<devli...@hanik.com>  wrote:

From: Filip Hanik - Dev Lists<devli...@hanik.com>
Subject: Re: Comet and multipart
To: "Tomcat Users List"<users@tomcat.apache.org>
Date: Monday, January 3, 2011, 8:47 AM

On 1/3/2011 7:48 AM, sol myr wrote:
Hi,

We're implementing a CometServlet on top of Tomcat NIO connector, using "long 
polling".
Currently we're using the approach recommended by most tutorials: the client 
opens a connection and waits for a message (for a configured timeout); if such 
a message arrives, the client consumes it (e.g. presents it on screen), then 
*closes* the http connection, and opens a new connection (to wait for the next 
message).

Unfortunately, we have a network performance problem with opening and closing 
connections (our 3rd party proxy is good at keeping connections alive, but is 
slow in negotiating new connections).

So we'd like to keep the HTTP connection alive, and pass multiple messages on 
the same connection. We were hoping to tell the messages apart based on 
multipart format, or some other separator, or content length.

Could anyone please tell whether that's supported on the TomcatServlet side?
yes, it is supported, as long as your client knows how to do it. On the 
server/servlet side, all you do is read the input stream byte by byte
you can create any type of protocol rules inside the HTTP message that it sends 
up
best
Filip







-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1191 / Virus Database: 1435/3357 - Release Date: 01/03/11


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to