返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >thinkPHP6+workerman即时通讯小demo
  • 235
分享到

thinkPHP6+workerman即时通讯小demo

linuxphp 2023-09-07 12:09:02 235人浏览 薄情痞子
摘要

上次我们说到js定时异步请求模仿实时通讯。 本次我们就来讲下另一种即时通讯,workerman+tp6 环境:tp6(5也可以),workerman插件,composer,apipost(接口测试软件) 首先执行以下代码安装workerma

上次我们说到js定时异步请求模仿实时通讯。

本次我们就来讲下另一种即时通讯,workerman+tp6

环境:tp6(5也可以),workerman插件,composer,apipost(接口测试软件)

首先执行以下代码安装workerman

composer require topthink/think-worker`

安装好之后

项目路径下的cofing 文件下找到 config/worker_server.PHP

   'protocol'       => 'websocket', // 协议 支持 tcp udp unix http websocket text    'host'           => '0.0.0.0', // 监听地址    'port'           => 2346, // 监听端口    'socket'         => '', // 完整监听地址    'context'        => [], // socket 上下文选项    'worker_class'   => 'app\man\Worker', // 自定义Workerman服务类名 支持数组定义多个服务

只需要修改里面对应的参数即可,‘worker_class’可以是多个,需要使用逗号分隔开,也可以写成数组,路径需要写我们的类的绝对路径,不需要带后缀。

worker类代码如下

 

where('order_status',0)->where('is_push',0)->order('id desc')->count('id');            // $system_listener    =   Db::name('system_listener')->cache(true)->order('id desc')->select()->toArray();             if($hasNewDepositOrder){                $depositOrderInfo   =   Db::name('deposit_order')->where('order_status',0)->where('is_push',0)->order('id desc')->find();                // $data   =   ['creatTime'=>$depositOrderInfo['create_time'],'money'=>$depositOrderInfo['pay_amount'],'type'=>'deposit','system_listener'=>$system_listener];                $data   =   ['creatTime'=>$depositOrderInfo['create_time'],'money'=>$depositOrderInfo['pay_amount'],'type'=>'deposit'];    foreach($worker->connections as $connection) {                    if(empty($connection->lastMessageTime)){                        $connection->lastMessageTime =   $time_now;                    }                     if($time_now-$connection->lastMessageTime > self::$heartbeat_time){                        $connection->close();                    }                $connection->send(json_encode($data));                }                Db::name('deposit_order')->where('id',$depositOrderInfo['id'])->save(['is_push'=>1]);            }else{                foreach($worker->connections as $connection) {                    if(empty($connection->lastMessageTime)){                        $connection->lastMessageTime = $time_now;                        continue;                    }                     if($time_now-$connection->lastMessageTime > self::$heartbeat_time){      //连接超时                        $connection->close();                    }                }            }        });    }}

头部引入我们必须的几个类,定义好命名空间

下面的成员变量配置我们的端口以及心跳时间,函数内就是封装我们的自己的逻辑。

重新启动wokkerman

php think worker:server start 开启php think worker:server stop  结束php think worker:server status  查看状态

然后随便进入一个页面,这里需要注意的是在tp6中需要引入view类,否则有可能报错找不到

use think\facade\View;

Driver [Think] not supported  报错解决

将view删除,运行

composer require topthink/think-view

再新建view文件夹,还需要开启777权限,这是博主遇到的真实问题。

页面建好后,我们页面内写

Title

因为上面是根据数据库的信息插入来进行判断了 所以我们通过结构去表中增加数据在前台的 onmessage 中就可以打印出来数据展示

直接通过数据库的新增数据,就可以把对应的信息展示出来 具体逻辑就是worker.php中写的数据库展示逻辑

然后到根目录启动workerman,看下具体的效果。

php think worker:server   启动

 

 然后看到ok了,再见。

 

来源地址:https://blog.csdn.net/zhang_sir5768/article/details/124668114

--结束END--

本文标题: thinkPHP6+workerman即时通讯小demo

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

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

猜你喜欢
  • thinkPHP6+workerman即时通讯小demo
    上次我们说到js定时异步请求模仿实时通讯。 本次我们就来讲下另一种即时通讯,workerman+tp6 环境:tp6(5也可以),workerman插件,composer,apipost(接口测试软件) 首先执行以下代码安装workerma...
    99+
    2023-09-07
    linux php
  • TP5与基于workerman的GatewayWorker框架实战在线客服教程【即时通讯】
    一、前期准备 环境搭建 GatewayWorker手册页面直接下载demo(根据自己使用的环境下载) 觉得我的不标准的话可以去哔哩哔哩上看看《码农技术社区》这位大佬的视频挺详细的我就是跟着视频学会的 ...
    99+
    2023-09-14
    javascript 前端 php
  • 小程序中如何实现即时通讯功能
    在小程序中实现即时通讯功能通常需要使用到实时通讯的服务接口和技术。下面是一个简单的步骤来实现即时通讯功能: 选择合适的即时通讯服...
    99+
    2024-04-17
    小程序
  • vue实现集成腾讯TIM即时通讯
    本文主要介绍了vue实现集成腾讯TIM即时通讯,分享给大家,具体如下: 上图 前言 项目需要做个客服功能,用户端小程序,客服人员web端,于是用到了腾讯的tim 准备工作 在...
    99+
    2024-04-02
  • linux即时通讯工具有哪些
    常见的linux即时通讯工具有:1.Skype,即时通讯软件;2.Emesene,基于Pygtk开发的MSN客户端;3.aMSN,MSN Messenger软件;4.Pidgin,多协议即时通讯客户端;5.Finch,文本模式的IM客户端,...
    99+
    2024-04-02
  • 即时通讯源码|IM源码PHP
      即时通讯源码是一个完整的消息传递套件,供企业构建跨 Web、Android、iOS 设备的可定制协作平台,以建立虚拟连接。即时通讯解决方案提供多种通信媒介,如语音和视频通话、实时聊天、视频会议,以连接来自多个设备的远程团队。即时通讯源码...
    99+
    2023-09-09
    php 开发语言
  • SpringBoot怎么实现WebSocket即时通讯
    这篇“SpringBoot怎么实现WebSocket即时通讯”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoo...
    99+
    2023-06-30
  • 微信小程序如何使用WebSocket实现即时通讯
    使用WebSocket实现即时通讯功能,可以让用户实时收发消息,并保持连接状态。在微信小程序中,可以通过wx.connectSock...
    99+
    2024-04-03
    微信小程序 WebSocket
  • python内网即时通信小程序
    环境:kali 一个server.py和client.pysever.py# -*- coding: utf-8 -* #Server.py import socket host = socket.gethostname() port =...
    99+
    2023-01-31
    内网 即时通信 程序
  • 详解android环境下的即时通讯
    首先了解一下即时通信的概念。通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯。消息通道可由TCP/IP UDP实现。...
    99+
    2022-06-06
    即时通讯 Android
  • php 怎么实现即时通讯实例
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php 怎么实现即时通讯实例?仿百度商桥IM即时通讯(Laravel)基于workerman和websocket开发实时聊天系统仿百度商桥IM通讯实现原理及方法:1、...
    99+
    2024-04-02
  • PHP中的即时通讯技术指南
    近年来,随着互联网技术的不断发展,即时通讯技术成为了各个领域中不可或缺的一部分,而在Web开发中,PHP作为一种广泛应用的服务器端脚本语言,也开始探索并应用即时通讯技术。本文将围绕PHP中的即时通讯技术,从通讯协议、技术方案、应用场景三个方...
    99+
    2023-05-22
    PHP编程 技术指南 即时通讯
  • nodejs结合Socket.IO实现websocket即时通讯
    目录为什么要用 websocketSocket.io开源项目效果预览app.jsindex.html为什么要用 websocket websocket 是一种网络通信协议,一般用来进...
    99+
    2024-04-02
  • php如何实现即时通讯实例
    本篇内容介绍了“php如何实现即时通讯实例”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php实现即时通讯实例的方法:1、搭建websock...
    99+
    2023-07-04
  • Android Easeui 3.0 即时通讯的问题汇总
     0、关于注册账号就不用说了。 1、创建应用、获取appkey 0、创建应用 1、填写信息 2、获取appkey 2、集成 0、首先新建一个工程 1、这里主要介...
    99+
    2022-06-06
    即时通讯 Android
  • JavaScript实现即时通讯的4种方案
    目录前言:1. http + ajax2. websocket3. SSE前言: 服务端如何将数据推送到浏览器,一般来说,Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起...
    99+
    2024-04-02
  • AndroidFlutter基于WebSocket实现即时通讯功能
    目录前言联系人界面构建聊天界面的实现消息界面的 MultiProvider运行效果前言 我们在前面花了很大篇幅介绍 Provider 状态管理,这是因为在 Flu...
    99+
    2024-04-02
  • 微信小程序如何使用websocket通讯的demo
    这篇文章主要为大家展示了“微信小程序如何使用websocket通讯的demo”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序如何使用websocket通...
    99+
    2024-04-02
  • SpringBoot实现WebSocket即时通讯的示例代码
    目录1、引入依赖2、WebSocketConfig 开启WebSocket3、WebSocketServer4、测试连接发送和接收消息5、在线测试地址6、测试截图1、引入依赖 <...
    99+
    2024-04-02
  • SpringBoot+WebSocket实现即时通讯的方法详解
    目录环境信息服务端实现导入依赖创建配置类创建一个注解式的端点并在其中通过配套注解声明回调方法服务端主动发送消息给客户端客户端实现Java客户端实现在前端环境(vue)中使用webso...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作