如何使用workerman进行消息推送

下面由workerman教程栏目给大家介绍使用workerman进行消息推送的方法,希望对需要的朋友有所帮助!

如何使用workerman进行消息推送

Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 

支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、异步消息队列等众多高性能组件。与之类似的还有swoole,MeepoPS。

首先下载workerman的Web消息推送系统 web-msg-sender。

# wget http://www.workerman.net/download/senderzip# unzip senderzip#cd web-msg-sender #vim start.php
use WorkermanWorker;// composer 的 autoload 文件include __DIR__ . '/vendor/autoload.php';if(strpos(strtolower(PHP_OS), 'win') === 0){    exit("start.php not support windows, please use start_for_win.batn");}// 标记是全局启动define('GLOBAL_START', 1);// 加载IO 和 Webrequire_once __DIR__ . '/start_io.php';可以注释掉 webServer 服务 没什么用  省点资源// require_once __DIR__ . '/start_web.php';// 运行所有服务Worker::runAll();

保存

#vim start_io.php找到 将端口改成你要监听的端口 我是2120 记住要在安全组里入方向添加白名单// PHPSocketIO服务 $sender_io = new SocketIO(2120);服务端设置完毕后#php start.php start -d //开启服务 并保持进程

推送类 我用的tp5

行者AI 行者AI

行者AI绘图创作,唤醒新的灵感,创造更多可能

行者AI 100 查看详情 行者AI

setUser($user_id)->setContent($string)->push();//连贯操作 * * Class WebSocket * @package appindexmoudel;  */class WebSocket{    /**     * @var string 目标用户id     */    protected $to_user = '';    /**     * @var string 推送服务地址      */    protected $push_api_url = 'http://127.0.0.1:2000';    /**     * @var string 推送内容     */    protected $content = '';    /**     * 设置推送用户,若参数留空则推送到所有在线用户     *     * @param string $user     * @return $this     */    public function setUser($user = '')    {        $this->to_user = $user ? : '';        return $this;    }    /**     * 设置推送内容     *     * @param string $content     * @return $this     */    public function setContent($content = '')    {        $this->content = $content;        return $this;    }    /**     * 推送     */    public function push()    {        $data = [            'type' => 'publish',            'content' => $this->content,            'to' => $this->to_user,        ];        // var_dump($data);        // var_dump($this->push_api_url);        $ch = curl_init ();        curl_setopt($ch, CURLOPT_URL, $this->push_api_url);        curl_setopt($ch, CURLOPT_POST, 1);        curl_setopt($ch, CURLOPT_HEADER, 0);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));        $res = curl_exec($ch);        curl_close($ch);        dump($res);    }}

操作控制器

setUser($uid)->setContent($string)->push();    }    /**     * 推送目标页     *     * @return thinkresponseView     */    public function targetPage(){        return view();    }}

推送目标的前端显示

        Title

jQuery(function ($) { // 连接服务端 var socket = io('http://39.106.132.216:2000/'); //这里当然填写真实的地址了 // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数,但一定是唯一标识 uid = 321; // socket连接后以uid登录 socket.on('connect', function () { socket.emit('login', uid); }); // 后端推送来消息时 socket.on('new_msg', function (msg) { console.log("收到消息:" + msg); $('#target').append(msg).append('
'); }); // 后端推送来在线数据时 socket.on('update_online_count', function (online_stat) { console.log(online_stat); $('#count').html(online_stat); }); })
http://我自己的域名/index/index/pushAString?uid=123ok 为推送成功offline 为未在线fail 为失败

前端成功展示 321为我自定义的uid

b245264dfc0f8841b420a5cb88170e7.png

以上就是如何使用workerman进行消息推送的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/494059.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Java 中的变量和数据类型
上一篇 2025年11月8日 17:06:52
《街头霸王6》PS4、Switch2、PS5画面对比视频
下一篇 2025年11月8日 17:06:59

相关推荐

  • Workerman的应用方向有哪些

    Workerman的应用方向有哪些Workerman的应用方向有哪些Workerman的应用方向有哪些Workerman的应用方向有哪些

    下面由workerman使用教程栏目给大家介绍workerman的应用方向有哪些,希望对需要的朋友有所帮助! Workerman不同于传统MVC框架,Workerman不仅可以用于Web开发,同时还有更广阔的应用领域,例如即时通讯类、物联网、游戏、服务治理、其它服务器或者中间件,这无疑大大提高了PH…

    2026年9月25日 • 用户投稿
    000
  • Workerman框架的理念

    Workerman框架的理念Workerman框架的理念Workerman框架的理念Workerman框架的理念

    下面由workerman教程栏目给大家介绍workerman框架的理念是什么,希望对需要的朋友有所帮助! Workerman框架的理念 极简、稳定、高性能、分布式。 极简 小即是美,Workerman内核极简,仅有几个php文件并且只暴露几个接口,学习起来非常简单。所有其它功能通过组件的方式扩展。 …

    2026年9月25日 • 用户投稿
    000
  • WorkerMan的特性

    WorkerMan的特性WorkerMan的特性WorkerMan的特性WorkerMan的特性

    下面由workerman php教程栏目给大家介绍workerman的特性,希望对需要的朋友有所帮助! WorkerMan的特性 1、纯PHP开发 使用WorkerMan开发的应用程序不依赖php-fpm、apache、nginx这些容器就可以独立运行。 这使得PHP开发者开发、部署、调试应用程序非…

    2026年9月25日 • 用户投稿
    500
  • workerman之小谈PHP中的几种运行模式

    workerman之小谈PHP中的几种运行模式workerman之小谈PHP中的几种运行模式workerman之小谈PHP中的几种运行模式workerman之小谈PHP中的几种运行模式

    下面由workerman使用教程栏目给大家介绍php中的几种运行模式,希望对需要的朋友有所帮助! 我们知道 workerman 程序需要在php-cli模式下运行,也就是命令行模式,这块我们有必要了解一下。话说PHP当下一共有4种运行模式,分别是CGI、FastCGI、CLI和Web模块模式。 CG…

    2026年9月25日 • 用户投稿
    600
  • workerman是什么意思

    workerman是什么意思workerman是什么意思workerman是什么意思workerman是什么意思

    下面由workerman入门教程栏目给大家介绍什么是workerman,希望对需要的朋友有所帮助! Workerman,高性能socket服务框架 Workerman是什么? Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。 boardmix博思白板 boardmi…

    2026年9月25日 • 用户投稿
    700
  • WorkerMan Connection类的使用(附代码)

    WorkerMan Connection类的使用(附代码)WorkerMan Connection类的使用(附代码)WorkerMan Connection类的使用(附代码)WorkerMan Connection类的使用(附代码)

    下面由workerman教程栏目给大家介绍workerman connection类的使用,希望对需要的朋友有所帮助! 一、TcpConnection类 的使用  1、简单的TCP测试 Server.php 代码小浣熊 代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代…

    2026年9月25日 • 用户投稿
    000
  • workerman与thinkphp结合使用的方法

    workerman与thinkphp结合使用的方法workerman与thinkphp结合使用的方法workerman与thinkphp结合使用的方法workerman与thinkphp结合使用的方法

    下面由workerman入门教程栏目给大家介绍将workerman与thinkphp结合的方法,希望对大家有一定的帮助。 运行workerman需要安装pcntl和event或者libevent pcntl安装方法: 以php-5.5.20为例,实际情况按自己安装的PHP目录 立即学习“PHP免费学…

    2026年9月25日 • 用户投稿
    200
  • 什么是workerman?

    什么是workerman?什么是workerman?什么是workerman?什么是workerman?

    workerman是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、手机游戏服务器等。 workerman的目标是让PHP开发者更容易的开发出基于…

    2026年9月25日 • 用户投稿
    000
  • 怎么启动workerman

    怎么启动workerman怎么启动workerman怎么启动workerman怎么启动workerman

    注意Workerman启动停止等命令都是在命令行中完成的。 要启动Workerman,首先需要有一个启动入口文件,里面定义了服务监听的端口及协议。 启动           (推荐学习: workerman教程) 以debug(调试)方式启动 php start.php start 以daemon(…

    2026年9月25日 • 用户投稿
    000
  • workerman用什么协议

    workerman用什么协议workerman用什么协议workerman用什么协议workerman用什么协议

    workerman用什么协议?workerman支持哪些协议? WorkerMan在接口上支持各种协议,只要符合ConnectionInterface接口即可(参见定制通讯协议章节)。 为了方便开发者,WorkerMan提供了HTTP协议、WebSocket协议以及非常简单的Text文本协议、可用于…

    2026年9月25日 • 用户投稿
    100
  • TP5 如何整合 WorkerMan 以及 GatewayWorker

    TP5 如何整合 WorkerMan 以及 GatewayWorkerTP5 如何整合 WorkerMan 以及 GatewayWorkerTP5 如何整合 WorkerMan 以及 GatewayWorkerTP5 如何整合 WorkerMan 以及 GatewayWorker

    下面由workerman教程栏目给大家介绍tp5整合 workerman 以及 gatewayworker的方法,希望对需要的朋友有所帮助! TP5整合GatewayWorker Windows版安装 a)使用composer create-project topthink/think testTG…

    2026年9月25日 • 用户投稿
    100
  • workerman关闭失败

    workerman关闭失败workerman关闭失败workerman关闭失败workerman关闭失败

    运行 php start.php stop 提示 stop fail 原因:几种可能性         (推荐学习: workerman教程) 第一种可能性: 前提是以debug方式启动的workerman,开发者在终端按了ctrl z给workerman发送了SIGSTOP信号,导致workerm…

    2026年9月25日 • 用户投稿
    100
  • php workerman能做什么

    php workerman能做什么php workerman能做什么php workerman能做什么php workerman能做什么

    php workerman能做什么? Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。 Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的socket服务框架,你可以用它开发tcp代理、梯子代理、做游戏服务器、邮件服务器、ftp服务器、甚…

    2026年9月25日 • 用户投稿
    200
  • php workerman是异步么

    php workerman是异步么php workerman是异步么php workerman是异步么php workerman是异步么

    workerman官方介绍:Workerman是一款开源高性能异步PHP socket即时通讯框架。支持高并发,超高稳定性,被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏等开发。       (推荐学习: workerman教程)  支持TCP长连接,支持Websocket、HT…

    2026年9月24日 • 用户投稿
    100
  • workerman如何保持连接

    workerman如何保持连接workerman如何保持连接workerman如何保持连接workerman如何保持连接

    正常的情况客户端断开连接会向服务端发送一个fin包,服务端收到fin包后得知客户端连接断开,则立刻触发onClose事件回调。 但是有些极端情况如客户端掉电、网络关闭、拔网线、路由故障等,这些极端情况客户端无法发送fin包给服务端,服务端便无法知道连接已经断开。如果客户端与服务端定时有心跳数据传输,…

    2026年9月24日 • 用户投稿
    100
  • linux下workerman怎么启动

    linux下workerman怎么启动linux下workerman怎么启动linux下workerman怎么启动linux下workerman怎么启动

    注意Workerman启动停止等命令都是在命令行中完成的。 要启动Workerman,首先需要有一个启动入口文件,里面定义了服务监听的端口及协议。 启动 1、以debug(调试)方式启动 php start.php start 2、以daemon(守护进程)方式启动 php start.php st…

    2026年9月24日 • 用户投稿
    100
  • workerman无法启动的原因与解决方法

    workerman无法启动的原因与解决方法workerman无法启动的原因与解决方法workerman无法启动的原因与解决方法workerman无法启动的原因与解决方法

    工作中碰到workerman启动失败最常见的就是由于启动脚本找不到主进程pid文件导致的,workerman 3.2.2之前的版本主进程pid文件默认存储在/tmp/下,有些系统会定时清理/tmp/目录,导致无法启动。 解决方法: 方法1:升级workerman到3.2.2或以上版本,workerm…

    2026年9月24日 • 用户投稿
    000
  • Workerman网络编程实践:构建实时数据同步系统

    workerman网络编程实践:构建实时数据同步系统 引言:现在,随着互联网的高速发展和智能设备的普及,实时数据同步系统成为各个行业不可或缺的一部分。实时数据同步系统可以将数据快速地从一个源同步到多个目标,确保数据的准确性和及时性。本文将介绍如何使用PHP扩展库Workerman来构建一个高效的实时…

    用户投稿 2026年9月22日
    100
  • Workerman开发技巧大揭秘:提升网络应用性能的实用技巧

    workerman开发技巧大揭秘:提升网络应用性能的实用技巧 引言:Web应用程序的性能对于用户体验至关重要。网络应用性能的提升除了优化前端页面加载速度外,后端服务器的处理能力也是不可忽视的。在这方面,Workerman是一个强大的PHP框架,它可以帮助我们构建高性能的网络应用。本文将揭示一些实用的…

    用户投稿 2026年9月22日
    000
  • Workerman网络编程实践:构建可靠的即时数据同步系统

    workerman网络编程实践:构建可靠的即时数据同步系统 随着互联网和移动设备的普及,即时通讯变得越来越重要。在不同设备和平台之间实现即时通讯和数据同步已经成为开发者的常见需求。在这篇文章中,我们将探讨如何使用Workerman网络编程框架构建一个可靠的即时数据同步系统。 Workerman简介W…

    用户投稿 2026年9月22日
    100

发表回复

登录后才能评论
关注微信