2017-05-01 4 views
0

Angenommen, ich möchte jeden Benutzer identifizieren, der eine Verbindung zu einem PHP-Websocket-Server (Ratchet) initiiert.Websocket and user identification (PHP)

Jeder Benutzer hat ein eindeutiges Token in meiner Datenbank (nicht genug sicher ich weiß, aber lassen Sie uns dieses Beispiel einfach halten).

Ich muss dieses Token senden, wenn ich die Verbindung zum WS-Server öffne und meine Datenbank einchecke, wenn es mit einem Benutzer übereinstimmt, und wenn ja, kann ich weitermachen und die Verbindungs-ID des WS speichern, um den Benutzer verbinden zu können Die WS-Verbindung.

Dann verbundenen Benutzer-ID 1 Mangel ist eine Nachricht an angeschlossene Benutzer-ID senden 2

muss ich in der Datenbank 2 id Benutzer die Verbindung suchen Lage sein, die Nachricht zu senden? Oder gibt es eine Alternative, wie ein globales Array, das im Speicher bleibt oder wo der WS-Server jederzeit darauf zugreifen kann? dies wäre weniger schwer als die Datenbank anfordert, wenn ich zwischen „Benutzer-ID“ und „ws Verbindung Id“ direkt im Speicher oder etwas

Antwort

0

dies wäre weniger schwer als Anforderung die Datenbank nur einen Link speichern könnte, wenn ich kann nur eine Verbindung zwischen „Benutzer-ID“ speichern und „ws Verbindung Id“ direkt im Speicher oder etwas

Wenn durch „in Speicher“, meinen Sie über die gleiche Sitzung, dann PHP SESSIONS sind, was du brauchst. Auf diese Weise werden alle Informationen, auf die Sie innerhalb derselben Sitzung zugreifen möchten, buchstäblich im Speicher abgelegt.

+0

Tun Web-Sockets Support-Sitzungen das gleiche war wie ein Webserver? – nogad

+0

Er benutzt 'Ratchet', eine PHP-Bibliothek, also ja. –

+0

Ja, aber Sitzungen sind mit einem Benutzer verknüpft, ich möchte ein globales Array die Verknüpfungen zwischen jedem Benutzer und jeder Verbindung speichern, um die Verbindungen mehrerer Benutzer gleichzeitig zu finden, ohne jedes Mal eine Verbindung zu meiner Datenbank herzustellen – Owow