2011-11-10 11 views
9

He estado teniendo problemas para cargar la biblioteca socket.io para mi código de cliente JS en una aplicación Node.js alojada en Heroku.Socket.io en Heroku: código del lado del cliente

Por ahora, tengo esta línea al final de mi archivo index.html:

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

Pero entonces, cuando lo haga socket = io.connect('http://myherokuapp'); en mi código de cliente JS, consigo un esperado 'io no está definido 'error.

¿Alguna idea de cómo cargar correctamente la biblioteca en Heroku?

Gracias!

+0

ok, así que finalmente traté de empujar la biblioteca del lado del cliente "manualmente" con el resto de mi aplicación. Parece que funciona pero ahora corro en un nuevo problema durante la inicialización de socket.io.js: http: //myherokuapp/socket.io/1/? T = 1320939716103 & jsonp = 0 se llama en algún momento y devuelve 404 no Object encontró. – Johanisma

Respuesta

8

Ok, así que finalmente encontré mi camino. Lo estoy compartiendo en caso de que ayude a alguien.

me carga el script en index.html de esta manera:

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

tiene sentido porque la biblioteca del lado del cliente es en realidad la carga desde el servidor de nodo y no debe ser empujada manualmente.

En mi archivo JS del lado del cliente, que una instancia de la toma de esta manera:

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

También, y esto va más allá del alcance de esta pregunta, pero no se puede utilizar WebSocket en Heroku por ahora. Tienen una pequeña nota sobre eso here.

Espero que esto ayude!

+0

Después de cambiar el código a esto, ¿está funcionando su aplicación en el servidor Heroku? También estoy enfrentando el mismo problema y aún no lo he resuelto. Me sale el error socket.io.js no encontrado 404. Voy a probar tu código más tarde hoy. ¿Tu aplicación está funcionando en el servidor de Heroku? ¿Puedes compartir la URL si está funcionando? – jeewan

Cuestiones relacionadas