2017-02-23 11 views
1

Ich versuche, bei Stern websocket zu verbinden, Es funktioniert socket.io-clientHalten Verbindung mit Socket.io

socket = io.connect(url ,{ 
    transports: ['websocket'], 
    secure: true, 
    'force new connection' : false, 
    'reconnect' : true, 
}); 

verwenden, aber jedes Mal, oder aktualisieren ich ändern Seite, WebSocket-Verbindung trennen und wieder anschließen (obviusly). Meine App ist keine "One-Page-App".

Es gibt eine Möglichkeit, die Verbindung am Leben zu erhalten?

Antwort

1

Gibt es eine Möglichkeit, die Verbindung am Leben zu halten?

Nein. Nicht, wenn Sie zulassen, dass die Seite im Browser geändert wird.

Wenn der Browser die Seiten wechselt, werden alle mit der alten Seite verbundenen Ressourcen (einschließlich webSockets) geschlossen, und dann wird die neue Seite initialisiert und geöffnet. Du kannst das nicht ändern.

Die einzige Möglichkeit, einen webSocket offen zu halten, ist, ihn in ein Fenster zu legen, das sich nicht ändert. Dies würde entweder eine Umwandlung in eine einzelne Seiten-App erfordern (die Seiten werden nicht geändert) oder den webSocket in einen Rahmen oder ein Fenster, der sich nicht ändert. Sie könnten den Benutzer eine Browsererweiterung installieren lassen (die persistente Verbindungen aufrechterhalten kann), aber ich nehme an, dass Sie nicht danach fragen.

Andernfalls müssen Sie nur Dinge auf Ihrem Server verwalten, um mit der Tatsache umzugehen, dass eine Seitenänderung innerhalb Ihrer Site den alten webSocket schließt und einen neuen öffnet.

+0

@ icy2k - Hat dies Ihre Frage beantwortet? Wenn dies Ihre Frage beantwortet, können Sie dies der Community anzeigen, indem Sie auf das grüne Häkchen links neben der Antwort klicken. Das wird dir auch einige Reputationspunkte einbringen, wenn du hier beim Stack Overflow die richtige Prozedur befolgst. – jfriend00

Verwandte Themen