Streaming data from client with HTTP Post
Asked Answered
H

2

11

I would like to stream data from the client to the server.

My application streams audio data to the server. I do not know how long the audio will be when I begin streaming it. I want to reduce latency by transmitting the data as it is being recorded. Once all the data has been uploaded, then I will process it.

So, what I would like is a HTTP POST where the body is streamed. At the client, the POST would be sent as the data is available. At the server end, I would like it to arrive like a normal POST with a complete body of collected data.

I am currently using Restlet, and implementing my stream as a Chunked POST to the Restlet framework.

However, I can not find a client API that allows me to begin the POST, then start streaming the data.

I haven't found anything useful searching the archive. Can anyone give me a pointer here. Can HTTP POST be used this way? Can I use Restlet for this? Is there another standard pattern/API for streaming from the client to the server?

Many thanks in advance Peter

Hapsburg answered 13/12, 2012 at 21:25 Comment(4)
Depending on the application / client the Websocket protocol might be interesting for you.Autodidact
Nice, Thanks Stephan. Does Websocket work on Android and iOS?Hapsburg
Yes it does! jWebSockets looks very nice. Has anyone tried it? Other recommendations?Hapsburg
On Android I have used Weberknecht which however has not seen a release for some time now, so I am not sure whether it is still under development. For C++ I know about WebSocket++, however I never used it.Autodidact
H
8

Going to answer my own question for those that come after.

Here is a nice tutorial on streaming requests with Apache HttpClient

Search for "Request Streaming:"

http://hc.apache.org/httpclient-3.x/performance.html#Request_Response_entity_streaming

Hapsburg answered 14/12, 2012 at 13:27 Comment(0)
U
-5

I can not find a client API that allows me to begin the POST

You could always use a browser. Serverside it's just the same a a file upload.

Uniformed answered 13/12, 2012 at 22:14 Comment(1)
Thanks, but I need to do this in my application. I want to make a laptop Java client for debugging, and then implement Android and iOS.Hapsburg

© 2022 - 2024 — McMap. All rights reserved.