Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
Hi everyone.

I am trying to write a web client that connects to an API using HTTP. The API server is the Gephi software (https://gephi.org) with the "streaming plugin" which accepts commands to modify a graph in real-time. My goal is to visualize Internet traffic showing end-stations as nodes and connections as edges.

The API was not written by me and there is no way to change its behaviour. (There might be, but this is out of scope)

This API is somehow special since the HTTP connection stays open the whole time (even if it is idle).

So, my plan is to:
1. make a http connection to the server
2. send commands (POST) in JSON format using the established connection
3. wait for a reply which might take a while
4. send more commands
5. wait for replies
and so on.

Only steps 1. and 2. are fixed. There is no order in the following steps. Some commands expect a reply while others do not. Also it is possible to send hundreds of commands without waiting for reply.

I tried to build the web/api client using LWP and IO::Socket::INET, but the connection is closed at some point in time.

Basically it is possible to open/close the connection for every single command, but this limits the performance of the web/api client.

The API is described here:
https://wiki.gephi.org/index.php/Graph_Streaming
Is it focused on Java but on the bottom there are examples of the command syntax.

Can you give me some hints how to continue?

Thanks.
-Markus

In reply to Persistent HTTP connection by mst226

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others chanting in the Monastery: (14)
    As of 2014-09-30 19:32 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      How do you remember the number of days in each month?











      Results (381 votes), past polls