c++qtpushqt5qtnetwork

How to connect to a PUSH server via http in Qt5


Reviewing QNetworkAccessManager I don't see anything 'push' related. http://qt-project.org/doc/qt-5/qnetworkaccessmanager-members.html Unlike POST or GET, with 'push' http connection, you are maintaining the connection so you can receiving periodic updates from the server. What is the correct function to use for a HTTP REST 'push' client connection in Qt5? Or possibly a persistent http connection?


Solution

  • > How would I use QNetworkAccessManager to connect to an http push server?
    <thiago> pEYEd: what HTTP command do you need to send?
    > thiago good point. I am not sure. It looks like json  https://www.cryptsy.com/pages/pushapi
    <thiago> pEYEd: JSON is not an HTTP command
    <thiago> try again: what HTTP command do you need to send?
    > i know
    <thiago> pEYEd: let me try this: have you tried to simply get() the page?
    > it looks like POST
    > http://pusher.com/docs/client_api_guide/client_connect
    <thiago> then use post()
    > thiago will it automatically do a persistant connection?
    <thiago> pEYEd: what exactly do you need to happen?
    <thiago> it will keep giving you data as long as there's data to be given
    > but it can't time out
    <thiago> once the data ends, the connection may be closed or reused. But you cannot and must not care about it.
    <thiago> there's no timeout mechanism in QNAM
    > no FIN/ACK unless specified?
    <thiago> that's at a much lower level
    <thiago> the HTTP request/reply ends when the server says it ends
    > the connection can't close. no fin/ack
    <thiago> under HTTP/1.1, it ends when the number of bytes specified in Content-Length is reached
    <thiago> or the chunked encoding says it's the last chunk
    <thiago> if either of those conditions happen, the QNetworkReply signals the end
    <thiago> then QNAM can do whatever it wants to the socket
    > Thank you!