讲师中心 微信公众号
AI工具推荐 视频效率加速

Workerman主动推送信息客户端收不到消息怎么排查

云浩吖_7732

云浩吖_7732

发布时间:2026-08-09 19:31:07

|

377人浏览过

|

来源于php中文网

原创

Workerman主动推送客户端收不到,根本原因是连接未建立或推送路径中断;需同步验证服务端是否真发出消息(如$worker->connections为空则客户端未连上)、网络链路是否通畅(如Nginx缺Upgrade头)、客户端是否正确监听message事件,缺一不可。

workerman主动推送信息客户端收不到消息怎么排查

Workerman主动推送信息但客户端收不到,常见于连接未建立、路由错误、数据未真正发出或客户端未正确监听。排查必须从服务端推送逻辑、网络链路、客户端接收三端同步验证,不能只看某一边日志。

确认服务端是否真发出了消息

在推送代码执行位置加日志,用var_dumpWorker::log()输出发送前的连接对象和内容:

foreach ($worker->connections as $connection) { var_dump($connection->id, $connection->getRemoteIp(), '即将发送:hello'); $connection->send('hello'); }

如果var_dump没输出,说明循环根本没进——【$worker->connections为空,代表当前没有活跃连接】。此时不是推送失败,而是客户端压根没连上来。

检查$worker->onConnect回调是否被触发。没触发就说明WebSocket握手失败,重点查Nginx反向代理配置或浏览器控制台的WebSocket连接状态(status 101?还是400/404?)。

验证GatewayWorker模式下推送路径是否走通

方法一:用GatewayClient直连Register服务测试

在Web项目中写一个独立PHP脚本,require GatewayClient后填入真实Register地址:

Gateway::$registerAddress = '192.168.1.100:1236'; // 不能是0.0.0.0,必须是Register服务监听的IP+端口

执行Gateway::sendToAll('test from gatewayclient')。若客户端收到,说明GatewayWorker链路正常;若收不到,【检查start_register.php中$register->listen地址是否绑定到可访问IP,且防火墙放行1236端口】

方法二:用GatewayWorker自带的sendToUid接口验证

Events.phponMessage里手动调用一次:

Gateway::sendToUid($client_id, 'uid测试消息');

注意:此操作要求客户端已通过Gateway::bindUid($client_id, $uid)完成绑定。没绑定就发不出去,且不会报错。

抓包确认数据是否到达客户端网卡

第一步:在服务端机器执行tcpdump -i any port 2346 -w workerman.pcap(替换为你实际监听的端口)

第二步:触发一次推送,等待10秒后Ctrl+C停止抓包

第三步:把workerman.pcap拖到本地用Wireshark打开,过滤tcp.port == 2346 and websocket

看到WebSocket: Text帧且Payload是你推送的内容,说明服务端已发出;没看到,说明推送逻辑根本没走到socket write层——可能是连接被close过但没清理引用,或$connection->send()返回false却没处理。

看到帧但客户端仍收不到,问题一定出在网络中间件(如Nginx WebSocket proxy_pass配置缺失Upgrade头)或客户端JS未监听message事件。

客户端侧强制验证接收能力

在浏览器控制台直接执行:

ws = new WebSocket('ws://your-domain.com:2346'); ws.onmessage = e => console.log('收到:', e.data); ws.onopen = () => ws.send('ping');

如果能收到服务端返回的pong或任何响应,证明链路通;如果onmessage从不触发,但onopen成功,说明服务端推送的数据格式非法(比如发了非UTF-8字符串、JSON没JSON.stringify、或WebSocket帧类型设为binary但客户端expect text)。

特别注意:Workerman默认发送的是text帧。若你用$connection->send("\x81\x05hello")手拼二进制帧,客户端JS会静默丢弃。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

146

2026.05.20

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

182

2026.05.20

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

127

2026.05.20

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

20

2026.09.21

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

0

2026.09.21

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

0

2026.09.21

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

0

2026.09.21

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

0

2026.09.21

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

40

2026.09.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman中文手册
Webman中文手册

共0课时 | 0人学习

Workerman官方手册
Workerman官方手册

共0课时 | 0人学习

ThinkPHP5.1完全开发手册
ThinkPHP5.1完全开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn