socket sincroni con Node.js

1

Voglio trasferire un'app esistente da Java a Node.js - vorrei chiedere il tuo consiglio.

L'app java è un server socket multithread in cui è possibile connettere un numero arbitrario di client. L'app viene eseguita su esecutori java. Ad ogni client viene fornito un socket per connettersi all'app.

Il client si connetterà al server socket e ci sarà l'handshake. Dopo l'handshake, i dati verranno trasmessi tra il client e il server. I dati trasferiti sono in ordine sequenziale perché il client invia i dati come tali. E sono in grado di controllare il thread su cui è connesso il client.

Ora, Node.js non ha thread, quindi sono confuso su come eseguire il porting del server socket Java multithread. Qualche idea?

    
posta Poliquin 24.10.2012 - 13:37
fonte

2 risposte

2

Non c'è davvero alcun modo per "portare" l'applicazione. L'approccio migliore sarebbe quello di modellare il comportamento esistente, quindi scrivere un'applicazione del Nodo completamente nuova che sia conforme a tale comportamento.

JavaScript e Java sono modelli di programmazione estremamente diversi. JavaScript non è strongmente tipizzato e fa molto affidamento su un modello di programmazione asincrono. Provare a fare una porta diretta ti darebbe un codice terribile e perdi molte caratteristiche che rendono il Nodo buono.

    
risposta data 24.10.2012 - 14:34
fonte
0

Node.js non ha thread, ma non ha socket di blocco o blocchi di alcun tipo. Viene eseguito tutto in un ciclo di eventi e invia i callback all'arrivo dei dati. Quindi è necessario ristrutturare il codice in modo che ogni chiamata socket imposti una funzione per continuare l'elaborazione. Questo è chiamato "continuation passing style".

Significa una ristrutturazione davvero grande. Hai davvero un motivo convincente per trascorrere il tempo necessario per eseguire il porting dell'applicazione su un runtime più lento e meno maturo?

    
risposta data 24.10.2012 - 14:19
fonte

Leggi altre domande sui tag