Re: HTTP tunneling and Servlet communication
- From: exquisitus <nebulla@xxxxxxxxxxxxxxxxxx>
- Date: Fri, 20 May 2005 13:14:15 +0000 (UTC)
Andrea Desole wrote:
exquisitus wrote:
I want to use a servlet layer at the backend, because my client will almost definitely be behind a firewall/using a proxy server (I will therefore need http/s tunneling to communicate with clients). I have come up with a class which acts as a Facade to clients and presents a course simpler request/response API to clients. I have a Requset Factory which creates Asynch and Synch Requests. I am however stuck now and need some help. I am not sure how to convert my method call into an HTTP request (I have read several Servlet tutorials but still can't see a usefule xample that shows how a thick client can use a servlet - all examples seem to be about web browsers).
did you look at SOAP?
Yeah. Sorry, I should have mentioned that I did not want to use SOAP because of all the "weight" of the XML payload and also the extra XML procesing required on both ends. I want this to be as lightweight as I can get away with (securely).
Additionaly, I have not entirely worked out how I can "force" certain requests (i.e. SynchRequests) to be blocking. I have some ideas, but there are all pretty much hacks. i would be grateful for any ideas or pointers here.
well, http is actually synchronous, so your problem should be to do that non blocking
My bad. I should have read what I was typing before I sent the post ;-). You are entirely right - the problem is to make the calls asynch. I have ideas about how to do it - an obvious one would be spawning a new thread which actually executes the HTTPRequest command, returning to the user and then calling back the callee when the data arrives/times out etc, but I wanted to know if there is another (more elegant?) way.
Lastly, whilst all this request/response is going on, I want to be "pushing" data from the server to the client through the same tunnel. Is this possible?. Can I send request/responses AND data on the same tunnel (presumably the same port)?.
I don't know if this is possible. The problem here is basically to get more http responses for one request, which is fairly hard. The only possibility I can think of is to send responses with the 100 status code. As far as I know, in that case it's possible to send more responses.
No, that is not what I mean. I'm talking about a client sending a request and simultaneously receiving data that is being "pushed" from the server. The key here is that the data is being pushed or streamed from the server. It is a "push" model i.e. not the typical "pull" model. Again, of the top of my head - I think I could have the datastream listener running in another thread and then handling the streaming data as it arrives (maybe it is tagged differently?). Which also suggests the possible use of a buffer so that data dosen't get lost if the client is busy.....
.
- Follow-Ups:
- Re: HTTP tunneling and Servlet communication
- From: Andrea Desole
- Re: HTTP tunneling and Servlet communication
- References:
- HTTP tunneling and Servlet communication
- From: exquisitus
- Re: HTTP tunneling and Servlet communication
- From: Andrea Desole
- HTTP tunneling and Servlet communication
- Prev by Date: Re: RMI registry blocked at port 1099
- Next by Date: Re: HTTP tunneling and Servlet communication
- Previous by thread: Re: HTTP tunneling and Servlet communication
- Next by thread: Re: HTTP tunneling and Servlet communication
- Index(es):
Relevant Pages
|
Loading