作者:天生骄傲 | 来源:互联网 | 2023-09-08 15:40
php安装swoole1.下载swoole安装wgethttp:pecl.php.netgetswoole-1.9.1.tgztar-zxvfswoole-1.9.1.tgzcds
php安装swoole
1. 下载swoole安装
wget http://pecl.php.net/get/swoole-1.9.1.tgz
tar -zxvf swoole-1.9.1.tgz
cd swoole-1.9.1
phpize
./configure
make
make install
2. 在php.ini添加swoole.so
php -m查看是否安装成功
环境依赖
- 仅支持Linux,FreeBSD,MacOS,3类操作系统
- Linux内核版本2.3.32以上
- PHP5.3.10以上版本
- gcc4.4以上版本或者clang
- cmake2.4+,编译为libswoole.so作为C/C++库时需要使用cmake
PHP版本依赖
- swoole仅支持PHP5.3.10或更高版本,建议使用PHP5.4+
- swoole不依赖php的stream、sockets、pcntl、posix、sysvmsg等扩展。PHP只需安装最基本的扩展即可
PHP直播代码
1.start.php 使用时需要开启,服务器输入(php start.php)
php
//php在线直播示例代码
//使用PHPCLI模式运行
//命令:php start.php
//设置路径
define('_ROOT_', dirname(__FILE__));
require_once _ROOT_.'/function.php';
//监听地址和端口
$server = new swoole_websocket_server("0.0.0.0(这里就是四个0,不要改)", 8888);
//服务端接收连接事件
$server->on('open', function (swoole_websocket_server $server, $request) {
if(!file_exists(_ROOT_.'/client/'.$request->fd.'.client')){
@file_put_contents(_ROOT_.'/client/'.$request->fd.'.client',$request->fd);
}
});
//服务端接收信息事件
$server->on('message', function (swoole_websocket_server $server, $frame) {
foreach(notice(_ROOT_.'/client/') as $v){
$server->push($v,$frame->data);
}
});
//服务端接收关闭事件
$server->on('close', function ($ser, $fd) {
@unlink(_ROOT_.'/client/'.$fd.'.client');
});
//服务开启
$server->start();
2.index.html 直播页面,访问该页面观看直播
3.rec.html主播录制页面,访问该页面进行直播录制
4.function.php 统计数据页面
php
//统计在线人数
function clearDir($dir)
{
$n = 0;
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file == '.' or $file == '..')
{
continue;
}
if (is_file($dir . $file)) {
$n++;
}
}
}
closedir($dh);
return $n;
}
//通知在线的人
function notice($dir){
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file == '.' or $file == '..')
{
continue;
}
if (is_file($dir . $file)) {
$array[]=file_get_contents($dir.$file);
}
}
}
closedir($dh);
return $array;
}
5.在同级目录php
PHP 即使通讯
1.socket.php 一样,使用时需要开启
2.socket.html聊天页面
php安装swoole
1. 下载swoole安装
wget http://pecl.php.net/get/swoole-1.9.1.tgz
tar -zxvf swoole-1.9.1.tgz
cd swoole-1.9.1
phpize
./configure
make
make install
2. 在php.ini添加swoole.so
php -m查看是否安装成功
环境依赖
- 仅支持Linux,FreeBSD,MacOS,3类操作系统
- Linux内核版本2.3.32以上
- PHP5.3.10以上版本
- gcc4.4以上版本或者clang
- cmake2.4+,编译为libswoole.so作为C/C++库时需要使用cmake
PHP版本依赖
- swoole仅支持PHP5.3.10或更高版本,建议使用PHP5.4+
- swoole不依赖php的stream、sockets、pcntl、posix、sysvmsg等扩展。PHP只需安装最基本的扩展即可
PHP直播代码
1.start.php 使用时需要开启,服务器输入(php start.php)
php
//php在线直播示例代码
//使用PHPCLI模式运行
//命令:php start.php
//设置路径
define('_ROOT_', dirname(__FILE__));
require_once _ROOT_.'/function.php';
//监听地址和端口
$server = new swoole_websocket_server("0.0.0.0(这里就是四个0,不要改)", 8888);
//服务端接收连接事件
$server->on('open', function (swoole_websocket_server $server, $request) {
if(!file_exists(_ROOT_.'/client/'.$request->fd.'.client')){
@file_put_contents(_ROOT_.'/client/'.$request->fd.'.client',$request->fd);
}
});
//服务端接收信息事件
$server->on('message', function (swoole_websocket_server $server, $frame) {
foreach(notice(_ROOT_.'/client/') as $v){
$server->push($v,$frame->data);
}
});
//服务端接收关闭事件
$server->on('close', function ($ser, $fd) {
@unlink(_ROOT_.'/client/'.$fd.'.client');
});
//服务开启
$server->start();
2.index.html 直播页面,访问该页面观看直播
3.rec.html主播录制页面,访问该页面进行直播录制
4.function.php 统计数据页面
php
//统计在线人数
function clearDir($dir)
{
$n = 0;
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file == '.' or $file == '..')
{
continue;
}
if (is_file($dir . $file)) {
$n++;
}
}
}
closedir($dh);
return $n;
}
//通知在线的人
function notice($dir){
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file == '.' or $file == '..')
{
continue;
}
if (is_file($dir . $file)) {
$array[]=file_get_contents($dir.$file);
}
}
}
closedir($dh);
return $array;
}
5.在同级目录php
PHP 即使通讯
1.socket.php 一样,使用时需要开启