Heim >Backend-Entwicklung >PHP-Tutorial >Wie implementiert swoole eine einzelne Abfrage und sendet sie dann an alle?
Meine Anforderung besteht darin, die Datenbank von Zeit zu Zeit abzufragen und sie dann an alle weiterzugeben
Der Code ähnelt dem folgenden:
while(true){
<code>$sql ="select 1+1"; $count=$mysql->query($sql); foreach($serv->connections as $fd) { $serv->push($fd, $count); } sleep(1000);</code>
}
Wenn ich zum Schreiben dies on('message') von swoole websocket verwende, wird eine Kopie dieses Codes geöffnet und jedes Mal ausgeführt, wenn der Client eine Verbindung herstellt.
Wie können wir einen Code ausführen, damit alle Kunden ihn erhalten können? .
Meine Anforderung besteht darin, die Datenbank von Zeit zu Zeit abzufragen und sie dann an alle weiterzugeben
Der Code ähnelt dem folgenden:
while(true){
<code>$sql ="select 1+1"; $count=$mysql->query($sql); foreach($serv->connections as $fd) { $serv->push($fd, $count); } sleep(1000);</code>
}
Wenn ich zum Schreiben dies on('message') von swoole websocket verwende, wird eine Kopie dieses Codes geöffnet und jedes Mal ausgeführt, wenn der Client eine Verbindung herstellt.
Wie können wir einen Code ausführen, damit alle Kunden ihn erhalten können? .
Ich erinnere mich, dass es einen Timer gibt, oder? Aber ich verstehe es auch nicht
Wenn Sie nur Nachrichten verwenden, unterteilen Sie die Nachrichten in zwei Arten: Die eine ist die vom Administrator gesendete Nachricht und die andere wird an andere Benutzer gesendet. Überprüfen Sie dann jedes Mal die Datenbank, wenn Sie eine Nachricht von einem Administrator erhalten Senden Sie es in großen Mengen an andere.
Wenn Sie der Meinung sind, dass dies zu viel Zeit in Anspruch nimmt, können Sie die Hauptaufgaben in Aufgaben zusammenfassen, sodass der Administrator sofort nach dem Senden einer Nachricht zurückkehren kann, um andere Nachrichten zu bearbeiten, und komplexe Dinge den Aufgaben überlassen.