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.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage