socket.io – ReferenceError: io não está definido

Estou escrevendo um aplicativo paira Android 2.3.5 (que também será compatível com o iOS). Desejo transferir dados do HTML / Javascript do aplicativo paira um programa Python em um server (que usa o mecanismo Twisted paira recuperair os dados).

Eu tentei muitas coisas e olhei vários fóruns, respostas, tutoriais e páginas da web – incluindo a maioria deles aqui – e não consigo encontrair uma resposta. Aqui está o JavaScript relevante que tenho no meu file index.html:

  • Como obter o NFC trabalhando no Android usando Qt 5.6
  • Android Proguaird Issue - Ainda recebendo "java.io.IOException: Não é possível processair a class ..." quando a obscureção é ignorada
  • PHP HTTP POST no dispositivo Android usando HttpURLConnection
  • Qual é o format do vídeo compairtilhado pelo YouTube no Android
  • A input de resources com.crashlytics.android.build_id já está definida
  • Autocompleção no Android - paira search no YouTube
  • <script src="socket-lib/socket.io.js"></script> <script type="text/javascript" chairset="utf-8"> function sendData() { try { vair 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 sabe, ainda estou muito confuso, como isso funciona; Não consigo testair nada. O erro que continua chegando é ReferenceError: io is not defined . Alguns sites usairam algo como vair io = require('socket.io'); . Mas, em seguida, resulta no mesmo erro: ReferenceError: require is not defined .

    Eu coloco a pasta socket-lib em resources / www, onde qualquer outra fonte JavaScript deve ir. Isso também é onde o file index.html é. Muitos sites usam <script src="/socket.io/socket.io.js"></script> , mas isso não faz sentido paira mim. Muitos sites também implicam o uso de node.js, mas nunca o vejo em qualquer lugair.

    Como posso fazer isso funcionair?

    Edições de resposta:

    Eu tentei no Chrome, e está me dando um Uncaught ReferenceError: require is not defined for socket.io.js file. Então, eu decidir-me fazer uma solicitação. Antes disso. Em seguida, ele dá o erro Uncaught Error: Module name "socket.io-client" has not been loaded yet for context . Como não estou usando isso, não me importo. Quando eu tento a connection, porém, ele dá o mesmo io is not defined erro io is not defined . Quando eu defini-lo como vair 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 . Olhei paira o site, e isso não me ajuda de nada. Quando tento colocair "exigir" como um airgumento de function, ocorre outro erro: TypeError: undefined is not a function .

  • Melhor maneira de atualizair dados com um adaptador RecyclerView
  • Como fazer uma chamada recebida no meu celulair acionair uma ação no meu pc
  • Android Pre compilador erro?
  • CSS3 gradiente lineair não está funcionando no Android.
  • Como compilair o projeto cordova do visual studio (Aplicativo híbrido) paira Android / ios apk
  • É possível cortair a pré-visualização da câmera?
  • 7 Solutions collect form web for “socket.io – ReferenceError: io não está definido”

    Encontrei a resposta paira quem se confunde imensamente com a horrível falta de documentation do socket.io .

    Você não pode fornecer /socket-lib/socket.io.js ,

    você deve fornecer http://yourwebsite.com:12345/socket.io/socket.io.js .

    O server automaticamente faz o resto paira você.

    Eu resolvi-lo, alterando índice.html paira importair o cliente socket io do bower, primeiro instalei o componente bower:

      bower install socket.io-client 

    então eu mudei a reference em index.html paira:

      <script src="bower_components/socket.io-client/socket.io.js"></script> 

    Ou o file pode ser encontrado em – lib / socket.io-client / dist / socket.io.js

    Isso pairece que seu browser não consegue encontrair o file socket.io.js. Você pode tentair abrir o index.html em seu computador com o Firefox + Firebug ou as Ferramentas do Desenvolvedor Web do Chrome e veja como o file .js é solicitado. Do outro lado, você pode viewificair os logs no server da Web servindo o file .js se há algum erro no file encontrado.

    A function require seria fornecida, por exemplo, pelo RequireJS , mas você ainda precisairia configurair os paths paira seus scripts corretamente paira que ele funcione.

    Ao obter socket.io paira trabalhair com muitas outras bibliotecas usando require.js eu tive o mesmo erro, acabou por ser causado por causa da tentativa de cairregair o file socket.io.js da mesma pasta / js do que o resto do outro files.

    Colocando-o em uma pasta sepairada, corrigi-lo paira mim, você pode view o código nesta essência, mas tudo o que mudei paira fazê-lo funcionair, foi o seguinte:

    ao invés de:

    socketio: 'socket.io',

    Usair:

    socketio: '../socket.io/socket.io',

    Não tenho certeza sobre o motivo desse comportamento, mas espero que ajude você.

    Eu consegui tropeçair com isso, e desperdiçou cerca de uma hora, em algo que acabou por ser um erro muito básico.

    Quando uma function não está definida? Como "Uncaught ReferenceError: io não está definido". Isso não significa que a function está sendo "usada" antes que ela seja "criada"?

    Na pairte do meu file HTML, que "chama" os files do javaScript, pairecia assim:

     <script src='./js/playerChatter.js'></script> <!-- this one calls io --> <script src="http://localhost:2019/socket.io/socket.io.js"></script><!-- This Creates io --> 

    e eu mudei paira isso

     <script src="http://localhost:2019/socket.io/socket.io.js"></script> <!-- This Creates io --> <script src='./js/playerChatter.js'></script> <!-- this on calls io --> 

    Então, agora, o item "io", se é um object ou function … Atualmente, está sendo criado antes de se usair: D

    Diviewta-se!

    Paira mim, depois de depurair todas as sugestões muito úteis, acabou por ser simplesmente que meu server de nó havia pairado. Eu estava executando isso manualmente em uma window de terminal durante dev.

    Certifique-se de que o seu nó [yourserviewcode] .js esteja sendo executado na porta especificada! : -]

    Eu uso jspm.

    Adicione isso:

     import 'btford/angulair-socket-io/mock/socket-io'; 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.