Estoy escribiendo una aplicación para Android 2.3.5 (que también será compatible con iOS). Deseo transferir datos del HTML/Javascript de la aplicación a un programa de Python en un servidor (que usa el motor Twisted para recuperar los datos).socket.io - ReferenceError: io no está definido
He intentado muchas cosas y he consultado varios foros, respuestas, tutoriales y páginas web, incluida la mayoría de ellos aquí, y no puedo encontrar una respuesta. Aquí está el Javascript relevante que tengo en mi archivo index.html:
<script src="socket-lib/socket.io.js"></script>
<script type="text/javascript" charset="utf-8">
function sendData() {
try {
var socket = io.connect('http://mywebsite.com:12345');
socket.on('connect', function(data) {
socket.send('Hello.');
socket.on('message', function (msg) {
socket.send('This is where I send data?');
});
});
}
catch(err) {
alert('ERROR: socket.io encountered a problem:\n\n' + err);
}
} // end of sendData
Si no se puede decir, todavía estoy muy confundido cómo funciona esto; Ni siquiera puedo probar nada. El error que sigue apareciendo es ReferenceError: io is not defined
. Algunos sitios usaron algo como var io = require('socket.io');
. Pero luego se produce el mismo error: ReferenceError: require is not defined
.
Puse la carpeta socket-lib en assets/www, donde debería ir cualquier otra fuente de Javascript. Aquí también está el archivo index.html. Muchos sitios usan <script src="/socket.io/socket.io.js"></script>
, pero esto no tiene sentido para mí. Muchos sitios también implican el uso de node.js, pero nunca lo veo en ningún lado.
¿Cómo puedo hacer esto?
Responder edita:
Lo he probado en Chrome, y me está dando una Uncaught ReferenceError: require is not defined
para el archivo socket.io.js. Así que decido fuente en require.js justo antes. Luego da el error Uncaught Error: Module name "socket.io-client" has not been loaded yet for context
. Como no estoy usando esto, no me importa. Sin embargo, cuando intento la conexión, aparece el mismo error io is not defined
. Cuando lo defino como var io = require('socket.io')
, el error es Error: Module name "socket.io" has not been loaded yet for context: _ http://requirejs.org/docs/errors.html#notloaded
. Miré el sitio web, y no me ayuda en absoluto. Cuando intento poner "require" como argumento de función, ocurre otro error: TypeError: undefined is not a function
.
he encontrado la respuesta, para cualquier persona que se ve enormemente confundido por la terrible falta de documentación de socket.io. No puede fuente "/socket-lib/socket.io.js"; debe obtener "http://supportweb.com:12345/socket.io/socket.io.js". El servidor automáticamente hace el resto por ti. – Ness
eres mi nueva persona favorita señor! Sus muestras en socket.io son terriblemente engañosas. – Xealgo
Según la documentación, desde v1.0 puede solicitar la biblioteca del cliente desde su CDN: http: // socket.io/blog/introducing-socket-io-1-0/# cdn-delivery – maxwell2022