Sto cercando di fare un semplice forwarder di comandi per connettere il mio computer di casa a un server che possiedo, in modo da poter inviare comandi al mio server e il mio pc di casa lo ottiene. Questi comandi sono semplici pause/riprendi per il mio downloader. Il mio progetto è che su un server, eseguo un'istanza hub, che crea una finestra per il passaggio dei comandi e una finestra per il back-end per passare quei comandi al mio pc. Lego queste due "finestre" con un canale, gestiscono un server. Quando un client si connette e invia un messaggio all'hub, viene trasmesso attraverso un canale alla finestra di back-end e quindi al back-end reale (sul mio PC di casa). Quando il backend risponde alla finestra di back-end sull'hub, l'hub stampa il risultato sul client.go socket eof
Con questo approccio, solo il primo messaggio passa e funziona con il mio downloader. Devo ricollegare il back-end dal mio pc di casa con l'hub ogni volta che ottengo un messaggio per farlo funzionare correttamente. Non penso che sia il modo giusto con le websocket, quindi eccomi qui. Dopo una richiesta riuscita (quando il backend termina è lavoro e risponde al risultato), viene interrotta per sempre con errore EOF.
Le parti importanti del codice sono:
Se si mette la fonte della tua GOPATH (sto sviluppando per la punta versione di go per supportare websocket moderni), per compilarlo: go build gosab/cmd
, per eseguirlo:
./cmd -mode="hub"
hub./cmd -mode="backend" --address="localhost:8082"
backend
per passare i messaggi al mozzo, utilizzare questo javascript:
var s = new WebSocket("ws://localhost:8082")
s.send("1 5")
Allora, come faccio gestire? I canali sono un buon modo per comunicare tra due richieste diverse?
Reinventare la ruota, forse per divertimento? Sembra molto simile a Salt: http://saltstack.org/ o Puppet Labs Marionette: http://docs.puppetlabs.com/mcollective/index.html – djangofan
buoni collegamenti, ma voglio implementare qualcosa di simile da solo – farnoy
I usare qualcosa di simile (un server di gioco con comunicazione browser-server in websocket) quindi so come farlo, ma non capisco quale sia la vera domanda qui.Se è solo "i canali sono un buon modo per comunicare", la risposta è SI. –