Hapi.js mit Socket.io - Wo ist socket.io.js?

8

Ich versuche, socket.io an einen Hapi.js-Server anzuhängen. Ich habe die socket.io-Implementierung in Vanilla Node.js getestet und alles funktioniert super; Die Serverseite der Hapi-Implementierung scheint gut zu funktionieren, aber die Ressource "/socket.io/socket.io.js" wird nicht an den Client geliefert.

Ich habe das Hapi-Beispiel überprüft, aber sie zeigen nur, was zu tun ist auf dem Server, und ihre Dokumentation auf dem Client-Handshake scheint seltsam: sie haben einen Server auf Port 8000 aber sagen, für den Socket.io Handshake zu 8080 - Ich habe sogar versucht, dies (was wonky und inkonsistent mit jedem anderen scheint socket.io Implementierung) ohne Glück.

Danke!

    
Philoktetes 20.08.2013, 19:30
quelle

4 Antworten

3

Hapi 8 hat einige neue Feinheiten eingeführt, wenn jemand dieses Problem erneut aufgreift ...

Auf dem Client müssen Sie /socket.io/socket.io.js nicht verwenden, stattdessen

  1. ein cdn ( https://cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js )
  2. oder die Datei genauer angeben ( http://yoursite.io/js/socket.io/socket.io.js )
  3. Besser noch, verwenden Sie etwas wie npm / browserify und ( Ссылка ):

    var socket = require('socket.io-client')('http://localhost:8080');

Auf welche Weise auch immer Sie den clientseitigen Code über

einbeziehen

Mit Hapi 8 kannst du auf deinem Server etwas Cooles machen:

server.js

%Vor%

/plugins/socketIO/index.js

%Vor%     
ppalles 25.12.2014 01:39
quelle
3

Antwort: Laden Sie das Client-Skript von CDN

Um Ihre spezifische Frage zu beantworten: Wir haben entschieden, das Skript socket.io.js von der CDN zu laden (zB: Ссылка ) um unsere App schneller zu laden. siehe: index.html # L23

offline arbeiten ...? ( Oder lieber CDN nicht verwenden? )

Wenn das Laden des Client-Skriptformulars CDN keine Option ist, weil Sie sich im DFÜ-Modus befinden oder offline arbeiten, verwenden Sie inert und die Datei Ihrer App zugänglich machen. z.B.:

%Vor%

Die Client-Datei befindet sich in: your_project / node_modules / socket .io-client / socket.io.js

Aktuelle Lösung / Beispiel mit End-to-End-Tests

Wenn Sie noch nach einem Beispiel von suchen, wie Socket.io in einem verwendet werden soll > Hapi.js app haben wir ein komplettes erstellt (mit Dokumentation / Kommentare und End-to-End-Tests).

  

siehe: Ссылка

Es ist auf dem neuesten Stand mit den neuesten Versionen von Hapi & amp; Socket.io und verwendet Redis Pub-Sub, um Chatnachrichten zu erhalten und zu verteilen.

    
nelsonic 23.11.2015 17:06
quelle
0

Sie können versuchen, die Datei socket.io.js aus dem Verzeichnis node.js in ein bekanntes Verzeichnis zu kopieren.

    
Kurt Pattyn 27.08.2013 09:38
quelle
0

Ich möchte zunächst bestätigen, dass Sie keine Probleme mit der Firewall haben, die die Zustellung der Anfrage beeinträchtigen.

Wenn eine Firewall nicht für das Blockieren der Anforderung verantwortlich ist, stellen Sie sicher, dass der Quellcode für die JavaScript-Datei auf denselben Server und dieselbe Portnummer verweist, wie in der Zeile Hapi.createServer angegeben, die Sie konfiguriert haben.

Wenn die Anfrage den Server erreicht, gibt sie eine Debug-Zeile im Terminal aus, die anzeigt, dass sie die Datei geliefert hat.

    
KauriNZ 27.08.2013 21:40
quelle

Tags und Links