socket.io - ReferenceError: io ist nicht definiert
Ich schreibe eine Anwendung für Android 2.3.5 (die auch mit iOS kompatibel sein wird). Ich möchte Daten aus dem HTML / Javascript der App in ein Python-Programm auf einem Server übertragen (der die Twisted-Engine zum Abrufen der Daten verwendet).
Ich habe viele Dinge ausprobiert und mir verschiedene Foren, Antworten, Tutorials und Webseiten angesehen - einschließlich der meisten hier - und kann keine Antwort finden. Hier ist das relevante Javascript, das ich in meiner index.html-Datei habe:
<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
Wenn Sie nicht sagen können, ich bin immer noch ziemlich verwirrt, wie das funktioniert; Ich kann nicht mal etwas testen. Der Fehler, der immer wieder auftritt, istReferenceError: io is not defined
. Einige Websites verwendeten so etwas wievar io = require('socket.io');
. Aber dann ergibt sich der gleiche Fehler:ReferenceError: require is not defined
.
Ich habe den Ordner socket-lib in assets / www abgelegt, wo jede andere Javascript-Quelle hingehen sollte. Hier befindet sich auch die Datei index.html. Viele Websites verwenden<script src="/socket.io/socket.io.js"></script>
, aber das ergibt für mich keinen Sinn. Viele Sites implizieren auch die Verwendung von node.js, aber ich sehe es nirgendwo.
Wie kann ich das schaffen?
Antwortänderungen:
Ich habe es in Chrome versucht, und es gibt mir eineUncaught ReferenceError: require is not defined
für die Datei socket.io.js. Also entscheide ich mich, in require.js direkt davor zu arbeiten. Dann gibt es den FehlerUncaught Error: Module name "socket.io-client" has not been loaded yet for context
. Da ich das nicht benutze, ist mir das egal. Wenn ich die Verbindung versuche, gibt es das gleicheio is not defined
Error. Wenn ich es definiere alsvar io = require('socket.io')
ist der FehlerError: Module name "socket.io" has not been loaded yet for context: _ http://requirejs.org/docs/errors.html#notloaded
. Ich habe mir die Website angesehen und es hilft mir überhaupt nicht. Wenn ich versuche, "require" als Funktionsargument anzugeben, tritt ein anderer Fehler auf:TypeError: undefined is not a function
.