iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Laravel 使用swoole 搭建 websocket 链接
  • 695
分享到

Laravel 使用swoole 搭建 websocket 链接

laravelswoolephp 2023-08-31 21:08:40 695人浏览 泡泡鱼
摘要

方案一  composer 安装配置安装 LaravelS 扩展包: composer require hhxsv5/laravel-s Laravel 5.5 以上版本可用,无需手动在 config/app.PHP 配置文件中注册,运行A

方案一  composer 安装配置安装 LaravelS 扩展包:

composer require hhxsv5/laravel-s

Laravel 5.5 以上版本可用,无需手动在 config/app.PHP 配置文件中注册,运行Artisan 命令相应脚本和配置文件发布到根目录下

php artisan laravels publish

该命令会发布配置文件 laravels.php 到 config 目录下,以及脚本文件到 bin 目录下

你可以在配置文件中对 Swoole 进行一些基本配置,而脚本文件主要用于管理 Swoole 服务的启动、重载、关闭等操作。

启动LaravelS

//命令启动 LaravelS php bin/laravels start 

这样,Swoole 服务就被启动起来,监听本地的 5200 端口,如果有请求发送到这个端口,它就可以进行处理。

此外 php bin/laravels 还支持其它命令对 LaravelS 进行管理:

方案二   pecl 命令安装需要先安装pecl

  php swoole 扩展安装

pecl install swoole

修改 php.ini 配置文件

extension=swoole.so

重启 php-fpm 不同系统命令不同

sudo service php-fpm start      # 启动php-fpm

查看 swoole 扩展装好了

php -m

安装 laraveltw/laravel-swoole

项目根目录下使用 composer安装

composer require swooletw/laravel-swoole -vvv 

最好加上 -vvv 参数,因为安装很慢,会给人一种没有安装被卡主的感觉。最好别再本地执行或者在 PHPstORM 中执行。因为 windows 不支持 laravel-swoole, 会有各种问题。可以在虚拟机的项目根目录下执行安装时需要耐心。当在 composer.josn 中看到下图标识的表示安装成功

Swoole安装好以后就是写服务器端的代码,可以自己写php文件websocket.php

代码如下:

connect('127.0.0.1', 6379); $ws_server->on('open', function ($ws, $request) use ($redis) {    $redis->sAdd('id', $request->fd);    $mes = '用户:'.$request->fd.'已加入聊天室';    $redis->sAdd('mes', $mes);    pushAll($redis,$ws,$mes);    getAllMes($redis,$ws);}); $ws_server->on('message', function ($ws, $frame) use ($redis) {    $mes = '用户:'.$frame->fd.'
'.$frame->data; pushAll($redis,$ws,$mes);}); //监听WebSocket连接关闭事件$ws_server->on('close', function ($ws, $fd) use ($redis) { $redis->srem('key:'.$id,$fd); $mes = '用户:'.$fd.'已退出聊天室'; $redis->sAdd('mes', $mes); pushAll($redis,$ws,$mes);}); $ws_server->start(); function getAllMes($redis,$ws){ $mesLists = $redis->sMembers('mes'); foreach ($mesLists as $mes){ pushAll($redis,$ws,$mes); }}function pushAll($redis,$ws,$mes){ $fds = $redis->sMembers('id'); foreach ($fds as $fd){ if($ws->exist($fd)){ $ws->push($fd,$mes); } }}

然后linux运行

php WEBcoket.php

以上是一种方法,还可以写一个自动加载的方法例如

使用 laravel 自带的方法 artisan

php artisan make:command Swoole

会在 app\Console\Command\ 目录下生成 Swoole 文件

argument('action');        switch ($action) { //方法可以自己写调用            case 'close':                break;            default:                $this->start();                break;        }    }    public function start()    {        // 这里是监听的服务端口号        $this->ws = new swoole_websocket_server("0.0.0.0", 9500);        //监听WebSocket连接打开事件        $this->ws->on('open', function ($ws, $request) {             $this->ws->push($request->fd, "is ok\n"); //链接服务器成功返回提示        });        //监听WebSocket消息事件        $this->ws->on('message', function ($ws, $frame) {            $this->info("client is SendMessage\n" . $frame);        });        //监听WebSocket主动推送消息事件        $this->ws->on('request', function ($request, $response) {            $scene = $request->post['scene'];            foreach ($this->ws->connections as $fd) {                if ($this->ws->isEstablished($fd)) {                    $this->ws->push($fd, $scene);                }            }        });        //监听WebSocket连接关闭事件        $this->ws->on('close', function ($ws, $fd) {            $this->info("client is close\n");        });        $this->ws->start();    }}

在 Kernel.php 文件中注册这个 Swoole 类

load(__DIR__.'/Commands');        require base_path('routes/console.php');    }}

在虚拟机的根目录下执行

 php artisan swoole start

就会开启一个长起进程到这里服务器和后端代码完成现在需要一个前端页来实现长链接

前端代码很简单

    <a href="https://www.lsjlt.com/tag/测试/" target="_blank"><strong class="keylink">测试</strong></a>Web<a href="https://www.lsjlt.com/tag/Socket/" target="_blank"><strong class="keylink">Socket</strong></a>    

来源地址:https://blog.csdn.net/weixin_43695488/article/details/126134521

--结束END--

本文标题: Laravel 使用swoole 搭建 websocket 链接

本文链接: https://www.lsjlt.com/news/387079.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Laravel 使用swoole 搭建 websocket 链接
    方案一  composer 安装配置安装 LaravelS 扩展包: composer require hhxsv5/laravel-s Laravel 5.5 以上版本可用,无需手动在 config/app.php 配置文件中注册,运行A...
    99+
    2023-08-31
    laravel swoole php
  • laravel如何使用websocket
    什么是WebSocket? WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得浏览器和服务器之间的实时通信变得更加容易。与HTTP请求不同,WebSocket连接是持久的,这意味着...
    99+
    2023-08-31
    php laravel websocket
  • 如何使用nodejs搭建websocket服务器
    这篇文章给大家分享的是有关如何使用nodejs搭建websocket服务器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 简单开始1.安装node。https://no...
    99+
    2024-04-02
  • 使用Swoole怎么提高Laravel性能
    使用Swoole怎么提高Laravel性能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。环境1:硬件: 1 CPU, 4 Cores, 16GB MemoryMacOS 1...
    99+
    2023-06-15
  • Laravel笔记-使用composer搭建Laravel环境(开发工具phpStorm)
    以前写过一个,但没这个composer直接搭建的方便。在此记录下。 使用国内的 Composer 加速镜像 composer config -g repo.packagist composer https://mirrors.aliyun....
    99+
    2023-09-13
    laravel composer phpstorm php
  • 如何在 Linux 系统上搭建 Laravel 接口?
    当今,Laravel 是一个广泛使用的 PHP 框架,它被广泛应用于开发 Web 应用程序和 API。在本篇文章中,我们将介绍如何在 Linux 系统上搭建 Laravel 接口,并提供一些基本的演示代码。 首先,我们需要在 Linux 系...
    99+
    2023-08-17
    laravel linux 接口
  • 腾讯云服务器搭建ip用什么链接
    腾讯云服务器搭建IP可以通过以下几种方式实现: 使用腾讯云服务器搭建ip地址:可以在腾讯云网站上进行配置,根据需求选择合适的配置即可。 使用腾讯云提供的VPN:VPN可以帮助您在互联网上快速、安全地连接腾讯云服务器,实现更好的访问。VP...
    99+
    2023-10-26
    腾讯 链接 服务器
  • 使用 Websocket 连接到 NSQ
    来到编程网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《使用 Websocket 连接到 NSQ》,介绍一下,希望对大家的知识积累有所帮助,助力...
    99+
    2024-04-04
  • 怎么搭建云服务器网页链接
    如果您想搭建云服务器网页链接,您可以按照以下步骤进行操作: 打开 Microsoft Azure,并登录您的账户。 在页面的底部,点击 “服务器”或“虚拟主机”。 在“服务器”或“虚拟主机”页面,您可以选择适合您网站的虚拟主机或云主机。...
    99+
    2023-10-26
    链接 服务器 网页
  • 怎么搭建云服务器网络链接
    搭建云服务器网络链接可以通过以下步骤实现: 安装云服务器:在本地或云平台上安装云服务器的驱动程序和应用程序。如果需要远程控制或访问数据,请先将服务器配置为远程托管模式。 配置云服务器:在云服务器的控制面板中配置云服务器的参数。例如,您可...
    99+
    2023-10-26
    链接 服务器 网络
  • 如何搭建云服务器网页链接
    搭建云服务器网页链接可以分为以下几个步骤: 选择适当的服务器硬件:选择适合自己的服务器硬件,并根据自己的实际情况选择相应的云服务器操作系统和版本。 选择适当的云服务器服务提供商:根据自己的需要,选择适当的云服务器服务提供商,如AWS,A...
    99+
    2023-10-26
    链接 服务器 网页
  • 如何使用WebSocket+SpringBoot+Vue搭建简易网页聊天室
    今天小编给大家分享一下如何使用WebSocket+SpringBoot+Vue搭建简易网页聊天室的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2023-07-06
  • 怎么使用WebSocket+SpringBoot+Vue搭建简易网页聊天室
    这篇文章主要讲解了“怎么使用WebSocket+SpringBoot+Vue搭建简易网页聊天室”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用WebSocket+SpringBoot+...
    99+
    2023-07-05
  • Linux中怎么创建和使用软链接
    要创建软链接,可以使用ln命令。软链接也被称为符号链接,它是指向另一个文件或目录的指针。 要创建软链接,可以使用以下命令: ln -...
    99+
    2024-03-06
    Linux
  • Linux系统中怎么使用ln命令创建软链接与硬链接
    Linux系统中怎么使用ln命令创建软链接与硬链接,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux 系统下每创建一个文件,系统都会为此文件生成一个 index no...
    99+
    2023-06-12
  • 使用Python一步步搭建自己的区块链
    你是否会和我一样,对加密数字货币底层的区块链技术非常感兴趣,特别想了解他们的运行机制。但是学习区块链技术并非一帆风顺,我看多了大量的视频教程还有各种课程,最终的感觉就是真正可用的实战课程太少。我喜欢在实践中学习,尤其喜欢一代码为基础去了解整...
    99+
    2022-11-24
    区块链
  • laravel怎么实现上传图片的接口并建立软链接访问
    这篇文章主要介绍“laravel怎么实现上传图片的接口并建立软链接访问”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“laravel怎么实现上传图片的接口并建立软链接访问”文章能帮助大家解决问题。我们...
    99+
    2023-07-04
  • 如何搭建亚马逊转发服务器链接
    1、首先,你需要在 AWS EC2 中创建一个云端控制台。可以使用 opengroups 命令创建一个云端控制台,然后在控制台中输入以下命令创建一个云端控制台: bash server --name myserver 2、然后,你需要创...
    99+
    2023-10-27
    亚马逊 链接 服务器
  • 怎么搭建云服务器网络链接设置
    搭建云服务器网络链接设置是非常重要的步骤,因为它涉及到服务器的稳定性、可靠性和高可用性等方面。以下是一些基本的网络链接设置步骤,您可以根据自己的需求进行适当的调整。 确定您的网络需求:您需要确定需要哪种类型的网络连接,例如宽带还是专线,...
    99+
    2023-10-26
    链接 服务器 网络
  • 怎么搭建云服务器网页链接教程
    搭建云服务器网页链接的方法可以是多种多样的,以下是一些常见的方式: 使用现成的服务器:通常可以找到云服务器提供商或网络服务提供商,使用他们提供的服务器进行搭建。例如 AWS、Azure、Google Cloud Platform等。 使...
    99+
    2023-10-26
    链接 服务器 网页
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作