一、安装扩展下载swoole
看一下官网
Swoole目前不支持Windows,所以在linux下安装扩展,我用的宝塔
配置Linux下composer在任意目录运行
linux下下载swoole
用编辑器连接ftp同步线上线下代码(除了vender下的swoole包还有config下的配置文件swoole.php 、swoole_server.php)
我用的sublim需要安装插件,很简单百度方法很多
二、swoole配置
播放器用的是alipkayer,弹幕插件还有许多没弄明白所以下面只写和websocked的部分
<?php
use think\facade\Env;
// +----------------------------------------------------------------------
// | Swoole设置 php think swoole:server 命令行下有效
// +----------------------------------------------------------------------
return [
// 扩展自身配置
'host' => '有证书域名', // 监听地址
'port' => 39139, // 监听端口
'type' => 'socket', // 服务类型 支持 socket http server
'mode' => '', // 运行模式 默认为SWOOLE_PROCESS
'sock_type' => SWOOLE_SOCK_TCP | SWOOLE_SSL, // sock type 默认为SWOOLE_SOCK_TCP
'swoole_class' => '', // 自定义服务类名称
// 可以支持swoole的所有配置参数
'daemonize' => false,
'pid_file' => Env::get('runtime_path') . 'swoole_server.pid',
'log_file' => Env::get('runtime_path') . 'swoole_server.log',
'ssl_cert_file'=>'/www/server/panel/vhost/ssl/域名/fullchain.pem',//证书地址
'ssl_key_file' => '/www/server/panel/vhost/ssl/域名/privkey.pem',//证书key地址
// 连接成功触发
'onOpen' => function ($server, $request) {
echo '连接成功\n';
},
'onRequest' => function ($request, $response) {
$response->end("你麻痹啊");
},
//断开连接触发
'onClose' => function ($ser, $fd) {
echo '断开连接\n';
},
//接受客户端信息时触发
'onMessage' => function ($server, $frame) {
//接收数据处理
$fd = $frame->fd;//发送方房间号
$data = $frame->data;
$color = '0xffffff';
$danmu = [
'mode'=>1,
'text'=>$data,
'stime'=>'',
'color'=>$color,
"size"=> 25,
];
//广播给所有人
foreach($server->connections as $fds){
// if($fds != $fd){
$json_data = json_encode($danmu, 256);
$server->push($fds,$json_data);
// }
}
},
];
三、websocked
<script>
const client = new WebSocket("wss://必须是证书域名:39139");
//建立连接时触发
client.onopen = function() {
};
//通讯发生错误时触发
client.onerror = function() {
};
//连接关闭时触发
client.onclose = function(res) {
};
//客户端接收服务端数据时出发
client.onmessage = ({data}) => {
//data 是收到的广播数据
console.log(data);
};
</script>
四、Apache反向代理配置wss
启用 proxy_wstunnel_module 模块(去掉下面两行前#)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_wstunnel_modulemodules/mod_proxy_wstunnel.so
打开宝塔的网站设置,打开配置文件
在下面添加
ProxyRequests Off
ProxyPass /wss ws://127.0.0.1:7272
ProxyPassReverse /wss ws://127.0.0.1:7272
五、启动swoole服务
打开网站根目录