2016-03-31 6 views
-1

ändern Ich bin mit socket.io für eine Website und ich richte die Socket-Verbindung in meinem index.html und meine script.jsVerwendung derselben Buchse, obwohl Websites

Am Ende script.js nenne ich

Ist es möglich, die gleiche Socket-Verbindung zu halten, die ich in index.html auf main.html hatte?

+0

Welche Backend-Sprache wird im Projekt verwendet? –

+0

Ich benutze nodejs als Backend –

Antwort

0

Wenn es sich um eine Anwendung mit einer Seite handelt, die zwischen den Seiten nicht neu geladen wird, besteht in diesem Fall eine Socket-Verbindung, so dass die Socket-Verbindung nicht geändert wird.

Und wenn es dann den Code unten auf Knoten JS setzen neu zu laden, und es Neuinitialisierung die Socket-Verbindung dass zum ersten Mal trennen Buchse dann wieder an und alle angeschlossenen Buchse Details in clients Variablen speichern:

var clients = {}; 
io.sockets.on('connection', function(socket) { 
    socket.on('add-user', function(data) { 
     clients[data.user_id] = { 
      "socket": socket.id 
     }; 
    }); 

    //Removing the socket on disconnect 
    socket.on('disconnect', function() { 
     for (var name in clients) { 
      if (clients[name].socket === socket.id) { 
       delete clients[name]; 
       break; 
      } 
     } 
    }); 
}); 
+0

Ich lade eine andere Seite, aber ich möchte in der Lage sein, den gleichen Client (daher die gleiche socket.id) zu adressieren, obwohl er auf die andere Seite wechselt. –

+0

Ich teile mein eines meiner Github-Projekt und überprüfen, wie ich es mache, hoffe, es wird Ihnen helfen, wie ich https://github.com/zahid492/Realtime-collaboration-AA-MEAN-Socket.io/blob/master/server .js –

+0

Es ist nicht möglich, eine einzelne Socket-ID zu speichern, wenn Sie mehrere Seiten besuchen http://stackoverflow.com/questions/22920941/how-can-i-connect-multipule-html-pages-using-same-sessionid -in-socket-io? rq = 1 –