php消息推送-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
使用PHP来实现消息推送功能 - 学新通 (swvq.com)
Workerman是一款运行在PHP环境下的高性能的异步事件驱动框架由著名PHP框架YII的作者王盼创建。该框架通过使用PHP socket扩展实现了对WebSocket的支持并在此基础上实现了处理TCP/UDP协议的能力。
下面我们来演示一下通过使用Workerman库来实现消息推送的具体步骤
1.安装Workerman库
在命令行中使用以下命令安装Workerman库
composer require workerman/workerman
2.创建WebSocket服务器
在创建WebSocket服务器之前需要在Workerman的运行环境中引入自动加载函数。引入自动加载函数的方法如下
require_once __DIR__ . '/vendor/autoload.php';
引入自动加载函数之后就可以实例化WebSocket服务器了。代码如下
use Workerman\Worker;
use Workerman\Lib\Timer;
$ws_worker = new Worker("websocket://0.0.0.0:2346");
//配置参数
$ws_worker->count = 4;
$ws_worker->name = 'WebSocket';
//连接事件
$ws_worker->onConnect = function($connection)
{
echo "New connection\n";
};
//关闭事件
$ws_worker->onClose = function($connection)
{
echo "Connection closed\n";
};
//消息事件
$ws_worker->onMessage = function($connection, $data)
{
echo "Received: ".$data."\n";
};
Worker::runAll();
在上面的代码中我们实例化了一个WebSocket服务器并设置了监听地址和端口这里使用的是2346端口。之后我们设置了服务器的数量、名称、连接事件、关闭事件以及消息事件。
指定启动Worker进程数量是很有必要的因为是否能够支持大量连接和实时消息收发处理的速度和数量和进程数量有关系。
3.启动WebSocket服务器
在创建完WebSocket服务器后需要在命令行中使用以下命令启动WebSocket服务器
php websocket.php start
之后WebSocket服务器就启动起来了。
4.向客户端推送消息
在WebSocket服务器启动后我们需要向客户端推送消息。推送消息的方法如下
foreach($ws_worker->connections as $connection)
{
$connection->send('Welcome!');
}
在上面的代码中我们遍历了服务器上所有的连接并向其发送了消息这里发送的消息是’Welcome!’。