6

Sto provando ad adattare la mia app utilizzando websocket per l'esecuzione su GAE, ma leggendo i documenti, non trovo una soluzione carina a questo problema.Esegui Websocket su GAE

Utilizzando un davvero semplice applicazione del genere: https://github.com/marcosbergamo/gae-nodejs-websocket

Questo è il mio campione demo provando uso. Ma ricevo questo errore quando provo a connettermi al mio websocket;

Seguire l'immagine della richiesta;

enter image description here

risposta

2

Dopo un sacco di ore di studio e test, un amico in Google mi mostra una soluzione per questo problema! Grazie Thiago Avancini!

Bene, la soluzione è:

Il primo passo sta usando il managed-VM. (Il repository lo usa.) Ma l'obiettivo è cambiare la gestione da Google a Utente. Quando si esegue questa operazione, il passaggio successivo è creare un IP statico per la propria applicazione. Nel mio caso, usando la porta 3000 per servire il mio Websocket, sentitevi liberi di cambiare. Sul mio app.yaml ho abilitare questa porta anche in questo modo:

network: 
    forwarded_ports: ["3000"] 

Ricordati di abilitare questa porta sul proxy in "rete >> >> predefinita del firewall".

Se si distribuisce l'applicazione tramite gcloud, è necessario abilitare nuovamente l'applicazione sulla gestione utente e l'IP statico.

Invierò a GoogleCloudPlatform questo repo per sarà un esempio per l'utilizzo di websockets su AppEngine.

+0

Sono stato in grado di connettermi a un server Wamp su GAE utilizzando il metodo suggerito ma non ho avuto bisogno di passare la mia istanza a User Managed. – CuriousGeorge

4

Per utilizzare websockets, è necessario utilizzare Google Managed VM con runtime personalizzato.

https://cloud.google.com/appengine/docs/managed-vms/custom-runtimes

Una volta che è in esecuzione, è necessario accedere a tale server direttamente da IP o cname. Non è possibile passare attraverso il dominio appspot.com.

+0

Grazie! Sto risolvendo il problema usandolo. – Kefka

+0

Oltre ad aprire quella porta sulla configurazione di rete, sarà necessario inoltrare la porta nel Dockerfile. Potete vedere il mio repository all'indirizzo: https://github.com/jdeskins/socketio-gcmvm –

+0

Lo so, aggiorno il mio readme.md sul mio repository di esempio. Grazie per la tua risposta = D – Kefka