您现在的位置是:网站首页>后端技术>PHP教程PHP教程
tp5实现workerman在线聊天功能
神夜2021-08-25 09:15:34【PHP教程】4033人已围观文章来源:神夜个人博客
简介
基于tp5框架下,我们使用comporser工具下载workerman
安装workerman:
安装workerman:
首先通过 composer 安装
composer require topthink/think-worker 1.0.*
在thinkphp5根目录(即与application同级目录)创建serve.php,编辑一下内容。
define('APP_PATH', __DIR__ . '/app/');
define('BIND_MODULE','chat/Index');
// 加载框架引导文件
require __DIR__ . '/libs/start.php';
接着我们可以创建chat模块的Index控制器:
Index.php代码如下:
namespace app\chat\controller;
use think\worker\Server;
class Index extends Server {
protected $socket = 'websocket://127.0.0.1:2346';
/**
* 收到信息
* @param $connection
* @param $data
*/
public function onMessage($connection, $data) {
$connection->send($data);
}
/**
* 当连接建立时触发的回调函数
* @param $connection
*/
public function onConnect($connection) {
$connection->send('连接成功');
}
/**
* 当连接断开时触发的回调函数
* @param $connection
*/
public function onClose($connection) {
$connection->send('连接已断开');
}
/**
* 当客户端的连接上发生错误时触发
* @param $connection
* @param $code
* @param $msg
*/
public function onError($connection, $code, $msg) {
echo "error $code $msg\n";
$connection->send('连接错误:$code $msg\n');
}
/**
* 每个进程启动
* @param $worker
*/
public function onWorkerStart($worker) {
}
}
运行server.php
命令:php server.php
新建html文件
DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title>
<script src="js/jquery.js">script>
head>
<body>
<textarea rows="5" id="content">textarea>
<button type="button" onclick="send()">发送button>
<script>
var ws = new WebSocket("ws://127.0.0.1:2346");
ws.onopen = function(){
console.log("连接成功")
}
ws.onmessage = function(e){
console.log(e)
}
function send(){
var content = $("#content").val();
console.log(ws)
ws.send(`${content}`)
}
script>
body>
html>
在控制台可查看连接成功输出
每次修改后台代码后要重启 serve.php 才生效。
下一篇:没有了