socket.io/?EIO=3&transport=polling&t=1345678 kein Laden

8

Ich habe einen Chat mit node.js, express und socket.io geführt. Hier ist der Code von app.js:

%Vor%

und hier ist mein Code auf meiner haml Datei

%Vor%

Aber damit das funktioniert, muss ich die Chat-Seite aktualisieren. Ich stelle fest, dass der Benutzer beim ersten Öffnen der Chat-Seite nicht die folgende Datei hat:

  

Ссылка

oder das auf meinem lokalen Rechner

  

Ссылка

Also sendet der Chat die Nachricht nicht, stattdessen, wenn Sie die Eingabetaste drücken, um die Nachricht zu senden, wird die Seite aktualisiert und dieses Mal habe ich die folgende Datei und alles funktioniert großartig.

  

Ссылка

oder das auf meinem lokalen Rechner

  

Ссылка

Was könnte das Problem hier sein, weil dieses Verhalten auf meiner lokalen Maschine und Produktion auftritt.

Vielen Dank im Voraus für Ihre Hilfe.

    
Jean 09.08.2015, 10:15
quelle

2 Antworten

3

Obwohl ich denke, dass Bradgnar wahrscheinlich recht hat, könnte es auch zu einem Ladeproblem kommen: Ein erstmaliger Benutzer hat die cdn-Ressource noch nicht geladen. Bei der Übergabe und nach einer Seitenaktualisierung wird die Datei sofort geladen. Wenn dies das Problem ist, wird Ihr io.connect-Befehl nicht ausgeführt, da io noch nicht existiert. Verschieben Sie jede tatsächliche Initialisierung in die Methode document.ready.

    
Hugo Logmans 21.08.2015, 20:54
quelle
2

Ich denke, das Problem ist, dass du auf deinem clientseitigen Code deine Sockets in einem Ajax-Event verpackst. Sie sollten nur Ereignisse verwenden, um Nachrichten mit den Sockets zu senden.

Was passiert, ist, dass Sie beim erfolgreichen Senden des Formulars ein Ereignis senden, um eine Nachricht an den Server zu senden. All dies funktioniert korrekt, wie es geschrieben wurde, aber der Datenfluss ist falsch, weil Sie nicht das Senden des Formulars tun sollten. Dieser Beitrag von David Walsh hat ein einfaches Beispiel und eine herunterladbare Zip-Datei von einem Beispiel, das Sie anschauen / wahrscheinlich bearbeiten können.

>     
RadleyMith 20.08.2015 13:02
quelle