erkennen kann Ich versuche, einen Chat mit express.js & socket.io zu machen. Derzeit können Benutzer in meinem Chat mehrere Registerkarten im selben Browser öffnen und über alle diese Registerkarten chatten. Dies bedeutet, dass derselbe Client gleichzeitig mit mehreren Personen chatten kann. Ich möchte dieses Verhalten verhindern.Wie man den gleichen Client in socket.io
Ich möchte einen Client verhindern, verbindet jedes Mal zu unterhalten, wenn:
1) Client auf verschiedenen Registerkarten auf dem gleichen Browser funktioniert
2) Client verschiedene Browser geöffnet und arbeitet über sie
Wie kann ich das tun? Danke!
Zunächst einmal, vielen Dank für Ihre Hilfe !!! Für den ersten Fall haben Sie Recht - Cookies oder Sitzungen reichen aus, um einen Benutzer zu erkennen, der im selben Browser, aber auf mehreren Tabs arbeitet. Aber für den zweiten Fall möchte ich keine Benutzerauthentifizierung am mommet bereitstellen. Ich habe einen Chat gesehen, der denselben Client erkennt, der mit mehreren Browsern arbeitet, und dieser Chat funktioniert ohne Benutzerauthentifizierung. Ich möchte das Gleiche tun. – Emil
Ich denke, ich habe eine einzige Lösung für mein Problem gefunden. Wenn wir eine 'socket.handshake.address' verwenden, um eine IP-Adresse des Clients zu erhalten, können wir diesen Client jedes Mal erkennen, wenn er eine Verbindung über Sockets von demselben Rechner aus öffnet. – Emil
@Emil - Aufgrund von Proxies und NAT und Benutzern in privaten Netzwerken kann nicht garantiert werden, dass eine IP-Adresse eindeutig einem einzelnen Benutzer entspricht. Eine Website würde alle Benutzer von meinem Haus (alle von ihren eigenen Computern) als dieselbe IP-Adresse wegen NAT in unserem Heimrouter sehen. Das gleiche kann für Benutzer von Unternehmen gelten. Wenn Sie also nur die IP-Adresse verwenden, verweigern Sie Benutzern fälschlicherweise die erste Verbindung, nur weil ein anderer Benutzer im selben privaten Netzwerk Ihren Dienst verwendet. – jfriend00