Thinkphp6.x 如何配置使用 Workerman
Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。基于workerman开发者可以更专注于业务逻辑开发,不必再为PHP Socket底层开发而烦恼。
首先我们来了解下什么是workerman
workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持websocket、HTTP等协议,支持自定义协议。基于workerman开发者可以更专注于业务逻辑开发,不必再为PHP Socket底层开发而烦恼。
实现步骤
1、首先通过 composer 安装
composer require topthink/think-worker
windows 服务器需要下载的
composer require workerman/workerman-for-win
2、安装成功后config 目录下,会多出几个文件
3、打开worker_server.php 我们看到他默认的监听端口是2345,下面虽然也提供了一些回调方法,但是毕竟是在配置文件中,我们也不太好扩展,所以我们这时需要自定义workerman服务类
步骤如下:
3.1 新建一个应用,比如命名为http,然后新建一个php 类 Worker.php
<?php
namespace app\http;
use think\worker\Server;
class Worker extends Server
{
protected $socket = 'websocket://localhost:2345';
public function onMessage($connection, $data)
{
$connection->send("已经收到");
}
/**
* 当连接建立时触发的回调函数
* @param $connection
*/
public function onConnect($connection)
{
$connection->send("连接成功");
}
/**
* 当连接断开时触发的回调函数
* @param $connection
*/
public function onClose($connection)
{
}
/**
* 当客户端的连接上发生错误时触发
* @param $connection
* @param $code
* @param $msg
*/
public function onError($connection, $code, $msg)
{
echo "error $code $msg\n";
}
/**
* 每个进程启动
* @param $worker
*/
public function onWorkerStart($worker)
{
}
}
3.2、然后在回到刚才的配置文件worker_server.php,修改worker_class 为你刚才创建的类,定义该参数后,其它配置参数均不再有效。
4、使用workerman作为HttpServer,启动服务端,至此我们的服务端已经搭建完成了
php think worker:server
出现此图就表示已经开启成功了,切记的是,一定不要关闭,一定不要关闭
5、我们可以新建一个html ,查看一下是否可以正常使用
<html>
<head>
<meta charset="utf-8" />
<title>网页版群聊</title>
</head>
<body>
<script>
ws = new websocket("ws://localhost:2345");
ws.onopen = function() {
console.info("websocket通道建立成功!!!");
ws.send('hello');
console.log("给服务端发送一个字符串:hello");
};
ws.onmessage = function(even) {
console.log("收到服务端的消息:" + even.data);
};
</script>
</body>
</html>
预览后,我们可以看到,已经通道已经建立成功了,之后可以随意挥霍你的业务逻辑了
补充一点小知识
使用workerman也可以作为HttpServer,(ps:一般我们不需要)
他的命令是
php think worker
linux下面可以支持下面指令
php think worker [start|stop|reload|restart|status]
使用workerman作为HttpServer
他的命令是
php think worker:server
linux下面可以支持下面指令
php think worker:server [start|stop|reload|restart|status]
以上这篇thinkphp6.x 如何配置使用 workerman就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持芦苇派。
原创文章,作者:ECHO陈文,如若转载,请注明出处:https://www.luweipai.cn/php/1628147627/