Connessione pubsub in vb.net per applicazione su riga di comando

di Anonimizzato30419 il
16 risposte
Salve,

sto usando il comando curl da cmd per recuperare delle comunicazioni da un server pub/sub per poi salvarle in un file di testo come da esempio:

####################################################################################
C:\Users\Administrator\Desktop>c:\curl\curl.exe -X POST "127.0.0.1:5001/api/v0/pubsub/sub?arg=messlock" -o c:\curl\output.txt --no-buffer
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11690 0 11690 0 0 0 0 --:--:-- 40:07:50 --:--:-- 0
####################################################################################

in pratica è una chiamata http che rimane in collegamento costante è mi recupera i dati appena arrivano, siccome curl mi permette di salvare i dati nel file txt solo con "append" (non sono riuscito ha trovare una soluzione a questo problema) e il file rimane bloccato solo in read, volevo creare un'applicazione a riga di comando preferibilmente in vb.net che faccia la stessa cosa ma sovrascrivesse il contenuto del file invece di aggiungere una nuova riga per evitare di trovarmi con GB di dati inutili...

Premessa non sono riuscito ha trovare nulla per replicare questo tipo di connessione, potete aiutarmi?

16 Risposte

  • Luché ha scritto:


    non sono riuscito ha trovare nulla per replicare questo tipo di connessione, potete aiutarmi?
    Se si tratta di una chiamata HTTP, allora puoi usare la classe WebClient.

    Ciao!
  • Sicuramente... , hai uno snippet da propormi?
  • Luché ha scritto:


    Sicuramente... , hai uno snippet da propormi?
    Hai dato almeno un'occhiata al link che ho postato?
  • Si ma, ma deve essere una connessione asincrona quella la uso tutti i giorni.. deve usare il pattern Publisher-Subscriber da quel link non ci sono informazioni chiare su come procedere
  • Luché ha scritto:


    deve essere una connessione asincrona
    Usa i metodi asincroni di WebClient al posto di quelli "tradizionali".

    Luché ha scritto:


    deve usare il pattern Publisher-Subscriber
    Nell'esempio che hai mostrato, stai inviando un HTTP POST al server: se questo comando che invii tramite il tool "cURL" è corretto, fai lo stesso con WebClient, poiché non vedo quali sono le differenze.
  • Ok mostrami un'esempio...

    PS le chiamate asincrone sono one shot, nell'esempio che ho allegato rimane la connessione in modo permanente e riceve di volta in volta le comunicazione
  • Luché ha scritto:


    Ok mostrami un'esempio...
    Non ho tempo di codificarti un esempio.
    Prova a cimentarti scrivendo un paio di righe di codice, poi in caso di problemi o errori, postale con l'adeguata descrizione e vedremo di analizzarle.
  • Ok! Grazie per l'aiuto mooooooolto prezioso...
  • Luché ha scritto:


    Ok! Grazie per l'aiuto mooooooolto prezioso...
    Se tu avessi battuto i tasti per scrivere codice invece che per fare dell'ironia fuori luogo, dopo aver chiesto pappe pronte o pre-digerite, probabilmente avresti ottenuto già un qualche risultato. E non siamo tutti qui, a tua completa disposizione, per scrivere il codice al posto tuo.
  • Cortesia ai massimi livelli, cmq grazie lo stesso..
  • Salve,

    aggiornamenti.. nonostante la scarsa collaborazione..

    Questo è il piccolo snippet funzionante..

    Dim httpWebReq = CType(System.Net.WebRequest.Create("http://127.0.0.1:5001/api/v0/pubsub/sub?arg=messloc"), System.Net.HttpWebRequest)
    httpWebReq.KeepAlive = True
    httpWebReq.Method = "POST"
    Dim responseReader As StreamReader = New StreamReader(httpWebReq.GetResponse.GetResponseStream)

    Console.WriteLine("Start")
    Ancora:
    Dim responseData = responseReader.Read

    Console.Write(responseData)
    GoTo Ancora
    Console.WriteLine("Close..")
    responseReader.Close()


    Ma ho un problema di codifica.. mi restituisce il seguente risultato ogni volta che intercetta un messaggio:

    1233410211411110934583465678173658273103907085755110612011398844353120689084431051061171165498120111881028152717998996778824769118864711389613444341009711697345834895010810498122736134443411510111311011134583470109877568891097573811156134443411611111210599736811534589134108971151169810811199107349312510

    dovrebbe essere un json...

    Qualcuno mi può aiutare per favore?
  • Salve aggiornamenti...

    risolto ora funziona correttamente !!
  • Sarebbe educato spiegare cosa hai fatto e mostrare il codice
  • Penso che mi cancello da questo forum dopo il trattamento ricevuto... Uno chiede un aiuto per risolvere un problema e viene pure criticato... Col cacchio vi dico a cosa serve lo snippet... Siate più umili... E non scannatevi... Per queste sciocchezze
Devi accedere o registrarti per scrivere nel forum
16 risposte