2011-11-10 13 views
9

Ho avuto problemi a caricare la libreria socket.io per il mio codice client JS su un'app Node.js ospitata su Heroku.Socket.io su Heroku: codice lato client

Per ora, ho questa riga alla fine del mio file index.html:

<script type="text/javascript" src="/socket.io/socket.io.js"></script> 

Ma poi, quando faccio socket = io.connect('http://myherokuapp'); nel mio codice cliente JS, ottengo un atteso 'io non è definito 'errore.

Qualche idea su come caricare correttamente la libreria su Heroku?

Grazie!

+0

ok così ho finalmente provato a spingere la libreria lato client "manualmente" con il resto della mia app. Sembra funzionare ma ora eseguo un nuovo problema durante l'inizializzazione di socket.io.js: http: //myherokuapp/socket.io/1/? T = 1320939716103 & jsonp = 0 viene chiamato ad un certo punto e restituisce 404 senza oggetto trovato. – Johanisma

risposta

8

Ok così finalmente ho trovato la mia strada. Sto condividendo nel caso in cui aiuti qualcuno.

ho caricare lo script in index.html questo modo:

<script type="text/javascript" src="http://myapp.herokuapp.com/socket.io/socket.io.js"></script> 

ha senso perché la libreria lato client viene effettivamente caricata dal server del nodo e non deve essere spinto manualmente.

Nel mio file JS lato client, ho istanziare la presa in questo modo:

socket = io.connect('http://myapp.herokuapp.com/'); 

Inoltre, e questo va oltre lo scopo di questa domanda, ma non è possibile utilizzare websocket su Heroku per ora. Hanno una piccola nota su quello here.

Spero che questo aiuti!

+0

Dopo aver modificato il codice, la tua app funziona sul server Heroku? Anch'io sto affrontando lo stesso problema e non ho ancora risolto. Ottengo il socket.io.js non trovato errore 404. Proverò il tuo codice più tardi oggi. La tua app funziona sul server Heroku? Puoi condividere l'URL se funziona? – jeewan