Heim >Backend-Entwicklung >PHP-Tutorial >javascript - Ich möchte eine Web-Chat-Funktion ähnlich wie QQ erstellen. Wie implementiert man sie? ?
Welche Methode verwenden Sie normalerweise für Echtzeitnachrichten, wenn Sie ein Web-Chat-Tool erstellen? ?
Was ich weiß:
Ajax-Umfrage (man sagt, es sei eine Verschwendung von Ressourcen, nicht gut...)
EventSource (schlechte Unterstützung, IE unterstützt es überhaupt nicht.)
WebSoket (ich weiß nicht viel darüber...)
Außerdem habe ich nach der Suche auf Baidu erfahren, dass es tatsächlich Bibliotheken von Drittanbietern gibt, die WebSocket implementieren können. Sind alle Kernprinzipien implementiert? Verwenden Sie Ajax-Polling. ?
Welche Web-Echtzeit-Kommunikationstechnologie wird derzeit am häufigsten verwendet? ? Xiaobai bittet um Rat, bittet den großen Gott, auf dem Luftweg zu kommen...
Welche Methode verwenden Sie normalerweise für Echtzeitnachrichten, wenn Sie ein Web-Chat-Tool erstellen? ?
Was ich weiß:
Ajax-Umfrage (man sagt, es sei eine Verschwendung von Ressourcen, nicht gut...)
EventSource (schlechte Unterstützung, IE unterstützt es überhaupt nicht.)
WebSoket (ich weiß nicht viel darüber...)
Außerdem habe ich nach der Suche auf Baidu erfahren, dass es tatsächlich Bibliotheken von Drittanbietern gibt, die WebSocket implementieren können. Sind alle Kernprinzipien implementiert? Verwenden Sie Ajax-Polling. ?
Welche Web-Echtzeit-Kommunikationstechnologie wird derzeit am häufigsten verwendet? ? Xiaobai bittet um Rat, bittet den großen Gott, auf dem Luftweg zu kommen...
Workerman ist ein rein PHP
entwickeltes Open-Source-Hochleistungs-PHP socket
Server-Framework. Es wird häufig in der Entwicklung von mobilen Apps, mobilen Spieleservern, Online-Spieleservern, Chatroom-Servern, Hardware-Kommunikationsservern, Smart Homes, dem Internet der Fahrzeuge, dem Internet der Dinge und anderen Bereichen eingesetzt. Unterstützt lange TCP-Verbindungen, Websocket, HTTP und andere Protokolle sowie benutzerdefinierte Protokolle. Basierend auf Workerman können sich Entwickler mehr auf die Entwicklung der Geschäftslogik konzentrieren und müssen sich nicht mehr um die zugrunde liegende Entwicklung von PHP Socket kümmern.
Git-Repository: https://github.com/walkor/Wor...
Chinesische Homepage: http://www.workerman.net/
Chinesisches Dokument: http://doc3.workerman. net/
Der Fragesteller kann dies versuchen.
Apropos zwei PHP-Lösungen, eine davon, WorkerMan, wurde von jemandem erwähnt, und die andere ist PHPWebIM, das von Fengge auf Basis von Swoole entwickelt wurde.
PECL-Erweiterung Swoole unterstützt die Verwendung von PHP zum Schreiben leistungsstarker Socket-Anwendungen:
<code>apt-get install php-pear php5-dev yum install php-pear php-devel pecl remote-info swoole pecl install swoole</code>
PHPWebIM ist ein offizielles WebSocket-Web-Instant-Chat-Tool, das von Swoole auf Basis der PHP-Swoole-Erweiterung und des Swoole-Frameworks entwickelt wurde.
PHPWebIM unterstützt WebSocket Comet zwei Protokolle und kann in allen Arten von Browsern verwendet werden, einschließlich IE, siehe Demo.
Wenn Sie Nachrichtenbenachrichtigungen nur relativ in Echtzeit implementieren möchten, können Sie auch AJAX-Polling verwenden:
1) Einzelne Seite (nur Abfrage auf einer Seite)
2) passives Polling mit setInterval-Intervall (Keep-Alive). dauerhafte) Verbindung, z. B. 30 Sekunden)
3) window.onfocus-Fenster erhält den Fokus und wird aktiv ausgelöst (ereignisgesteuert)
Das Abfrageintervall ist zu kurz und Benutzer öffnen zu viele Seiten, was zu übermäßigem Druck führen kann auf dem Server.
Für Unternehmen, die keine hohe Echtzeitleistung benötigen, können Sie das Intervall erhöhen, z. B. eine Abfrage alle 2 Minuten.
<code>window.onblur = function() {document.title = '失去焦点';}; window.onfocus = function() {document.title = '获得焦点';};</code>
Ich habe bereits eines mit nodejs socket.io geschrieben. Wenn Sie direkt suchen, finden Sie viele Beispiele, die von anderen geschrieben wurden: http://www.open-open.com/lib/...
Richtige Antwort oben.
Falladresse: http://www.workerman.net/
Websocket wird definitiv nicht über Ajax implementiert.
Die Verwendung von Websocket ist definitiv das Perfekteste und kann über Frameworks wie Workerman, React und Swoole implementiert werden.
Lange Abfragen können ebenfalls verwendet werden mehr Ressourcen. Aber die Implementierungskosten sind niedriger als bei WebSocket.
Es gibt auch Echtzeitabfragen, die die niedrigsten Implementierungskosten haben. Die Effizienz ist jedoch definitiv am niedrigsten. Beispielsweise verwendet SFs Nachrichtenerinnerung geplante Abfragen >