Laravel +swoole +webstock 实现直播弹幕功能 docker

docker环境,安装Swoole,无需修改php.ini文件

1.首先进入容器内,执行命令,下载swoole,并把文件复制到php/ext下

 wget https://pecl.php.net/get/swoole-4.6.6.tgz
 tar -xzvf swoole-4.6.6.tgz
 cp -r swoole-4.6.6 /usr/src/php/ext/swoole

2.安装swoole扩展

docker-php-ext-install swoole

3.安装完毕后

php -m   //查看扩展

或者

php --ri swoole  //查看扩展信息

安装成功后,不用再去php.ini再去添加extension=swoole.so;

安装 laraveltw/laravel-swoole

1.在项目根目录下使用composer require swooletw/laravel-swoole -vvv 安装;
如果提示Your requirements could not be resolved to an installable set of packages,则代表PHP版本不符合当前要求版本
命令可修改为composer require swooletw/laravel--ignore-platform-reqs
2.安装完毕后,查看composer.json文件
在这里插入图片描述
出现如图所示,则代表安装成功
3.创建 swoole 命令 执行

php artisan make:command Swoole

会在 app\Console\Command\ 目录下生成 Swoole 文件
在这里插入图片描述
在这里插入图片描述
4.根目录下执行 php artisan swoole start 就会开启一个长起进程

前端请求示例代码

<!doctype html>
<html>

<head>
    <title>WebSocket</title>
</head>
    <div id="WebSocket"></div>
<body>
    <script>
    var ws = new WebSocket("ws://test.in:9502");
    ws.onopen = function(event) {
        console.log("success");
        ws.send("hello world!"); //客户端给服务端推送消息
    };
    ws.onmessage = function(event) {
        var parent = document.getElementById('WebSocket');
        var div = document.createElement("div");
        div.innerHTML = event.data
        parent.appendChild(div);
        console.log("服务器传过来的数据是:" + event.data);
    }

    ws.onclose = function(event) {
        console.log("连接已关闭");
    };
    </script>
</body>

注意事项

1.如果出现类似错误提示,显示端口被占用

  PHP Fatal error: Uncaught Swoole\Exception:
  failed to listen server port[0.0.0.0:9501],
  Error: Address al

执行

查看端口:netstat -anp | grep 9501 

在这里插入图片描述
杀掉端口

kill -9 29854

29854 就是我图中的

2.修改文件内容时,记得重启一下swoole启动文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值