socket.io - ReferenceError: io não está definido
Estou escrevendo um aplicativo para Android 2.3.5 (que também será compatível com iOS). Desejo transferir dados do HTML / Javascript do aplicativo para um programa Python em um servidor (que usa o mecanismo Twisted para recuperar os dados).
Eu tentei muitas coisas e olhei para vários fóruns, respostas, tutoriais e páginas da web - incluindo a maioria deles aqui - e não consigo encontrar uma resposta. Aqui está o Javascript relevante que tenho no meu arquivo 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
Se você não pode dizer, eu ainda estou muito confuso como isso funciona; Eu não posso nem testar nada. O erro que continua chegando éReferenceError: io is not defined
. Alguns sites usaram algo comovar io = require('socket.io');
. Mas então resulta no mesmo erro:ReferenceError: require is not defined
.
Eu coloquei a pasta socket-lib em assets / www, onde qualquer outra fonte Javascript deveria ir. Este é também o local onde o arquivo index.html é. Muitos sites usam<script src="/socket.io/socket.io.js"></script>
, mas isso não faz sentido para mim. Muitos sites também implicam no uso do node.js, mas nunca o vejo em lugar nenhum.
Como posso fazer isso funcionar?
Edições de resposta:
Eu tentei no Chrome, e está me dando umaUncaught ReferenceError: require is not defined
para o arquivo socket.io.js. Então eu decido usar o require.js logo antes dele. Então dá o erroUncaught Error: Module name "socket.io-client" has not been loaded yet for context
. Desde que eu não estou usando isso, eu não me importo. Quando eu tento a conexão, no entanto, dá o mesmoio is not defined
erro. Quando eu defino isso comovar io = require('socket.io')
, o erro éError: Module name "socket.io" has not been loaded yet for context: _ http://requirejs.org/docs/errors.html#notloaded
. Eu olhei para o site, e isso não me ajuda em nada. Quando tento colocar "require" como um argumento de função, outro erro ocorre:TypeError: undefined is not a function
.