web-dev-qa-db-de.com

Wo befindet sich die Socket.IO-clientseitige .js-Datei?

Ich versuche, socket.io (Node-Bibliothek) zum Laufen zu bringen.

Ich habe das serverseitige js, das arbeitet, und es hört zu. Die Website von socket.io sagt einfach:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

Das ist schön, aber welche JS-Datei importiere ich!?!

Ich ging in das Verzeichnis node_modules, wo ich socket.io über npm installiert habe, und in socket.io/lib/ ist socket.io.js-Datei. Dies ist jedoch serverseitig (verwendet die Phrase require(), welche Fehler auf dem Client).

Ich habe eine Stunde damit verbracht, mich umzusehen, und ich kann keine Client-.js-Datei zum Laufen bringen.

Was vermisse ich?

29
dthree

Ich habe es schließlich geschafft, dies für mich selbst zu beantworten.

Die Einstiegsseite von socket.io ist nicht eindeutig, aber ich habe festgestellt, dass die .js-Datei auf dem Server von socket.io automatisch auf dem Startknoten gehostet wird, und zwar in dem in der Dokumentation angegebenen Verzeichnis:

"/socket.io/socket.io.js"

Sie zeigen also buchstäblich auf diese URL, unabhängig von Ihrer Web-App-Struktur, und sie funktioniert.

35
dthree

Ich würde vorschlagen, zu überprüfen, ob sich das node_modules-Verzeichnis auf der obersten Ebene Ihres App-Verzeichnisses befindet. Ich glaube auch, dass Sie eine Portnummer angeben müssen. Sie sollten etwas wie var socket = io.connect('http://localhost:1337'); schreiben, wobei die Portnummer 1337 lautet.

4
Shrey Gupta

Hier finden Sie CDN für verschiedene Versionen. 

1
refactor

Wenn du. .. getan hast npm installieren Dann befindet sich die Client socket.io-Datei unter node_modules/socket.io-client/dist/socket.io.js

0
Anshul Bisht

Der Client ist auf verschiedene Arten verfügbar:

  • wird vom socket.io-Server unter /socket.io/socket.io.js bereitgestellt
  • via Webpack als Modul enthalten socket.io-client
  • über die offizielle CDN https://cdnjs.cloudflare.com/ajax/libs/socket.io/<version>/socket.io.js

Für den ersten kann der Server auf verschiedene Arten konfiguriert werden:

// standalone
var io = require('socket.io')(port);

// with existing server from e.g. http.createServer or app.listen
var io = require('socket.io')(server);
0
OrangeDog