Heim > PHP-Framework > Swoole > Hauptteil

Erfahren Sie in einem Artikel, wie Sie mit Swoole ein Chatroom-Programm erstellen

爱喝马黛茶的安东尼
Freigeben: 2019-11-22 17:15:13
nach vorne
2514 Leute haben es durchsucht

Erfahren Sie in einem Artikel, wie Sie mit Swoole ein Chatroom-Programm erstellen

1. Erstellen Sie einen Websocket-Server

swoole verfügt ab Version 1.7.9 über eine integrierte Websocket-Serverfunktion , wir Mit nur wenigen Zeilen einfachem PHP-Code können Sie einen asynchronen, nicht blockierenden Multiprozess-WebSocket-Server erstellen.

Zuerst erstellen wir im Apache-Arbeitsbereich ein neues Projekt mit dem Namen swoole und erstellen dann darin eine neue Datei ws-server.php. Diese PHP-Datei erstellt hauptsächlich einen Websocket-Server und reagiert auf Benutzeranfragen. Der Inhalt lautet wie folgt:

<?php 
 
//创建websocket服务器对象,监听0.0.0.0:9502端口
$ws_server = new swoole_websocket_server(&#39;192.168.1.169&#39;, 9502);
 
//设置server运行时的各项参数
$ws_server->set(array(
&#39;daemonize&#39; => true, //是否作为守护进程
));
 
//监听WebSocket连接打开事件
$ws_server->on(&#39;open&#39;, function ($ws, $request) {
file_put_contents( __DIR__ .&#39;/log.txt&#39; , $request->fd);
//$ws->push($request->fd, "Hello, Welcome\n");
});
 
//监听WebSocket消息事件
$ws_server->on(&#39;message&#39;, function ($ws, $frame) {
pushMessage($ws,$frame);
});
 
//监听WebSocket连接关闭事件
$ws_server->on(&#39;close&#39;, function ($ws, $fd) {
echo "client-{$fd} is closed\n";
});
 
$ws_server->start();
 
//消息推送
function pushMessage($ws,$frame){
$data = $frame->data;
$msg = file_get_contents( __DIR__ .&#39;/log.txt&#39;);
for ($i=1 ; $i<= $msg ; $i++) {
$ws->push($i, $frame->fd.&#39; : &#39;.$data);
}
}
Nach dem Login kopieren

Der obige Code erstellt einen WebSocket-Server mit der IP-Adresse 192.168.1.169 und dem Port 9502. Diese Informationen können entsprechend der tatsächlichen Situation angepasst werden.

2. Erstellen Sie eine interaktive Chat-Seite

In ähnlicher Weise erstellen wir im Swoole-Verzeichnis eine neue chat.html-Datei, die eine rein statische HTML5-Seite ist Die Funktion besteht darin, mit dem WebSocket-Server über das WebSocket-Protokoll von HTML5 zu interagieren:

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="UTF-8">
  <script type="text/javascript">
  if(window.WebSocket){
  var webSocket = new WebSocket("ws://192.168.1.169:9502");
  webSocket.onopen = function (event) {
  //webSocket.send("Hello,WebSocket!"); 
  };
  webSocket.onmessage = function (event) {
    var content = document.getElementById(&#39;content&#39;);
    content.innerHTML = content.innerHTML.concat(&#39;<p style="margin-left:20px;height:20px;line-height:20px;">
    用户id-&#39;+event.data+&#39;</p>&#39;);
  }
 
  var sendMessage = function(){
  var data = document.getElementById(&#39;message&#39;).value;
  webSocket.send(data);
  }
  }else{
  console.log("您的浏览器不支持WebSocket");
  }
  </script>
</head>
<body>
<div style="width:600px;margin:0 auto;border:1px solid #ccc;">
<div id="content" style="overflow-y:auto;height:300px;"></div>
<hr/>
<div style="height:40px">
<input type="text" id="message" style="margin-left:10px;height:25px;width:450px;">
<button οnclick="sendMessage()" style="height:28px;width:75px;">发送</button>
</div>
</div>
</body>
</html>
Nach dem Login kopieren

3. Bisher haben wir die beiden Dateien Es wurde erstellt. Testen wir, ob es wie erwartet funktioniert.

3.1 Starten Sie den WebSocket-Server

Wechseln Sie in das Stammverzeichnis des Projekts und führen Sie dann das Skript ws-server.php über die PHP-Befehlszeile aus, um den WebSocket-Server zu starten lautet wie folgt:

cd /var/www/html/swoole
php ws-server.php
Nach dem Login kopieren
Wie im Bild gezeigt:

3.2 Überprüfen Sie, ob der WebSocket-Server erfolgreich gestartet wurde Erfahren Sie in einem Artikel, wie Sie mit Swoole ein Chatroom-Programm erstellen

Geben Sie den Befehl ein: netstat -tunlp|grep 9502, wenn es sichtbar ist Wenn Sie die folgende Schnittstelle erreichen, bedeutet dies, dass der WebSocket-Server erfolgreich gestartet wurde.

3.3 Chatten beginnenErfahren Sie in einem Artikel, wie Sie mit Swoole ein Chatroom-Programm erstellen

Bereiten Sie einige weitere Browser vor und geben Sie dann http://192.168.1.169/swoole/ in jeden Browser chat.html ein. Jeder Browser entspricht einem Benutzer, und dann kann ein Gruppenchat simuliert werden.

Geben Sie im Chat-Fenster des Chrome-Browsers „Hallo zusammen, ich bin Chrome“ ein. Zu diesem Zeitpunkt wird diese Nachricht im Chat-Fenster der UC- und Firefox-Browser angezeigt. Wenn Sie Informationen in das Chat-Fenster von UC- und Firefox-Browsern eingeben, werden auf die gleiche Weise auch die anderen beiden Fenster angezeigt. Hier ist ein Screenshot eines der Chat-Fenster, wie folgt:

Die Chat-Oberfläche ist etwas hässlich, aber die Funktion wird erfüllt und die Schnittstelle kann das UI-Frontend verschönern. Als nächstes können Sie fröhlich chatten. Ist das nicht ganz einfach? Erfahren Sie in einem Artikel, wie Sie mit Swoole ein Chatroom-Programm erstellen

PHP-Website für Chinesisch, eine große Anzahl kostenloser

Swoole-Einführungs-Tutorials

, willkommen zum Online-Lernen!

Dieser Artikel wurde reproduziert von: https://blog.csdn.net/tdcqfyl/article/details/52370804

Das obige ist der detaillierte Inhalt vonErfahren Sie in einem Artikel, wie Sie mit Swoole ein Chatroom-Programm erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage