Ich übergebe eine benutzerdefinierte Abfragezeichenfolge, die eine ID enthält, um einen Client auf dem Server zu autorisieren, wenn er über socket.io eine Verbindung herstellt.Aktualisiere Abfragezeichenfolgeparameter bei socket.io reconnect
var env = {id:12345};
var socket = io.connect('https://example.com', {query:'i='+env.id, port:443, reconnect:false, secure:true});
Wenn ein Client aus irgendeinem Grund getrennt wird, kann er die Verbindung wiederherstellen, indem er einfach die folgende Funktion aufruft.
socket.socket.connect();
jedoch zum Zeitpunkt eines Reconnect env.id
enthält in der Regel einen anderen Wert als bei der ersten Verbindung und ich mag an jedem Reconnect den aktuellen Wert in dem Query-String haben.
Die obige Reconnect-Methode sendet den Anfangswert erneut, auch wenn env.id
inzwischen auf einen anderen Wert geändert wurde.
Ich habe versucht, die aktuellen Parameter beim Aufruf der Reconnect-Funktion zu setzen, aber das scheint nicht zu funktionieren.
socket.socket.connect('https://example.com', {query:'i='+env.id, port:443, reconnect:false, secure:true})
Gibt es eine einfache Möglichkeit, nur die Abfrage-String mit dem aktuellen env.id
Wert zu aktualisieren und dann wieder an?
Oder muss ich das gesamte Socket-Objekt einmal getrennt zerstören und dann eine neue Verbindung mit var socket = io.connect()
mit der aktuellen ID aufbauen?
Wie kann ich zwei Parameter mit Abfrageoption übergeben? Danke im Voraus.! – Pritam
Versuchen Sie 'socket.socket.options.query = 'i =' + env.id + '& j =' + env.j;'. Setzen Sie ein "&" zwischen ihnen. – Westy92
Ich könnte falsch liegen, aber ich glaube, dieses Verhalten bricht in v1.5 – Aron