好的,下面我為您介紹使用ThinkPHP和Swoole開發聊天應用的實例。
- 環境搭建
首先需要安裝PHP和Swoole擴展,可以使用以下命令:
yum install php php-devel php-pear
pecl install swoole
- 新建項目
使用composer新建一個ThinkPHP項目:
composer create-project topthink/think chat
- 添加Swoole支持
在config/app.php中添加以下代碼:
'swoole' => ['enable' => true,'server' => ['host' => '127.0.0.1','port' => 9501,'mode' => SWOOLE_PROCESS,'sock_type' => SWOOLE_SOCK_TCP,],
],
這里配置了一個TCP服務器,監聽127.0.0.1:9501端口。
- 編寫控制器
在app/index/controller目錄下創建Chat.php控制器,編寫以下代碼:
namespace app\index\controller;
use think\swoole\WebSocket;
class Chat extends WebSocket
{public function onMessage($server, $frame){$data = json_decode($frame->data, true);$this->sendToAll($data['msg']);}
}
這里使用WebSocket類,并重寫了onMessage方法,接收客戶端發送的消息,并通過sendToAll方法將消息廣播給所有客戶端。
- 編寫前端頁面
在public/static目錄下創建chat.html文件,編寫以下代碼:
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>聊天室</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body><div id="message"></div><div><input type="text" id="input"><button onclick="send()">發送</button></div><script>var ws = new WebSocket("ws://127.0.0.1:9501/");ws.onopen = function(){console.log("連接成功");}ws.onmessage = function(event){console.log(event.data);$("#message").append("<p>" + event.data + "</p>");}function send(){var msg = $("#input").val();ws.send(JSON.stringify({msg: msg}));$("#input").val("");}</script>
</body>
</html>
這里使用了WebSocket的API,向服務器發送消息并接收服務器的廣播消息。
- 運行聊天應用
在命令行中運行以下命令:
php think swoole start
打開瀏覽器,訪問http://localhost/chat.html,即可使用聊天應用。
以上就是使用ThinkPHP和Swoole開發聊天應用的實例,希望對您有幫助。
好的,下面我為您介紹使用ThinkPHP和Swoole開發聊天應用的實例。
- 環境搭建
首先需要安裝PHP和Swoole擴展,可以使用以下命令:
yum install php php-devel php-pear
pecl install swoole
- 新建項目
使用composer新建一個ThinkPHP項目:
composer create-project topthink/think chat
- 添加Swoole支持
在config/app.php中添加以下代碼:
'swoole' => ['enable' => true,'server' => ['host' => '127.0.0.1','port' => 9501,'mode' => SWOOLE_PROCESS,'sock_type' => SWOOLE_SOCK_TCP,],
],
這里配置了一個TCP服務器,監聽127.0.0.1:9501端口。
- 編寫控制器
在app/index/controller目錄下創建Chat.php控制器,編寫以下代碼:
namespace app\index\controller;
use think\swoole\WebSocket;
class Chat extends WebSocket
{public function onMessage($server, $frame){$data = json_decode($frame->data, true);$this->sendToAll($data['msg']);}
}
這里使用WebSocket類,并重寫了onMessage方法,接收客戶端發送的消息,并通過sendToAll方法將消息廣播給所有客戶端。
- 編寫前端頁面
在public/static目錄下創建chat.html文件,編寫以下代碼:
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>聊天室</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body><div id="message"></div><div><input type="text" id="input"><button onclick="send()">發送</button></div><script>var ws = new WebSocket("ws://127.0.0.1:9501/");ws.onopen = function(){console.log("連接成功");}ws.onmessage = function(event){console.log(event.data);$("#message").append("<p>" + event.data + "</p>");}function send(){var msg = $("#input").val();ws.send(JSON.stringify({msg: msg}));$("#input").val("");}</script>
</body>
</html>
這里使用了WebSocket的API,向服務器發送消息并接收服務器的廣播消息。
- 運行聊天應用
在命令行中運行以下命令:
php think swoole start
打開瀏覽器,訪問http://localhost/chat.html,即可使用聊天應用。
以上就是使用ThinkPHP和Swoole開發聊天應用的實例,希望對您有幫助。