workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
使用gateway-worker绑定了client和uid,如何判断uid是否已离线?
(客户端会向服务端
发
送
心跳,5s/次) 2.用户请求服务端,获取道闸上的金额,
进
行支付 假设道闸客户端连接到gateway-worker的client_id是001,车场的客户端编号是A,那在道闸连接上服务端的时候那后续有用户
发
起http请求获取金额的时候,请求中也会传递车场编号A,那服务端会向客户端A
发
送
tcp请求获取金额。现在有一种情况,就是道闸系统有时候网络不好,老是断网,断网情况下,道闸客户端就没办法向服务端及时
发
送
心跳包,服务端也不知道这个客户端A离线了,这时候如果有http请求
进
来,服务端会继续向客户端A
发
送
请求获取金额#### 为此你搜索到了哪些方案及不适用的原因 1、在向客户端A
发
送
请求前,检测客户端A是否离线 使用`Gateway::isOnline(string $client_id)`先检测客户端A状态。但是这种方法建立在client_id触
发
了onClose回调,像断网这种情况,客户端是没办法触
发
onClose回调 2、服务端向客户端
发
送
心跳包检测客户端状态 我看官方文档可以通过服务端向客户端
发
送
心跳包检测客户端状态
问答
关于在
GatewayWorker
里用户授权后的问题
使用
GatewayWorker
做的长连接和客户端通信,非常感谢walkor老大开源这么好用的项目 客户端在连接上服务器时做用户登录,现在用的手册里提供的 Timer 定时器方法 https://workerman.net/doc/gateway-worker/close-unauthed-connections.html 请教个问题: 但是客户端连接上服务器后,如果30s内不认证,而是直接
进
行其他操作,那就每次都得判断这个用户是否登录
问答
workerman业务子
进
程之间可以共享内存吗
现在打算用workerman框架做游戏 (不同于PHP,其它一些用C++或者JAVA写的游戏程序 基本都是把用户
数
据
放入内存 再定时同步到mysql或者redis等
数
据
库中 大大减少了IO) 不知道
问答
关于pingData设置为空问题咨询
#### 问题描述 我使用TCP跟硬件连接
进
行交互,由于硬件那边说在连接时不能
发
送
pingData,以及硬件那边也不会给我
发
送
心跳包,所以我把pingData设置为空,我想问下pingData设置为空如果TCP长时间连接不
发
送
内容,服务器会自动断开连接吗 ``` 'gateway' => [ 'handler' => Gateway::class,
问答
gatewayworker
里面如何使用MQTT客户端去连接一个MQTT服务器?
#### 问题描述 这里写问题描述
gatewayworker
里面如何使用MQTT客户端去连接一个MQTT服务器?workerman都能使用MQTT,
gatewayworker
应该也可以使用吧?
问答
Workerman集群中work_id唯一性问题
HTTP
发
布推
送
信息的服务X和Y使用start_http.php运行在192.168.1.4 和192.168.1.5上。从http
发
送
推
送
服务的时候,只传了work_id和connection_id,并没有标识在哪台服务上。因为worker_id和connection_id的组合并不能保证全局唯一。假设用户甲连接的是 A,其
进
程ID work_id=2, 连接ID connection_id=2 用户乙连接的是 B,其
进
程ID也是 work_id=2, 连接ID connection_id=2这样我本来是想推
送
给甲的信息,用户乙也能收到。请问在集群中,是否有 work_id 唯一性的方案,异或我只能在用户连接上的时候,标识清楚用户连接id、
进
程id、所属集群的机器id。
问答
下载页面的
gatewayworker
怎么没有了
http://www.workerman.net/download这个页面,以前还能找到
gatewayworker
的下载,现在怎么找不到了?我还想找个windows版本跑一跑呢。
问答
webman 的 monitor
进
程内存监控平滑重启好像并不平滑?
#### 问题描述 查阅代码
发
现内存达到重启条件后执行了`posix_kill($pid, SIGINT);`,看起来并不是`平滑的重启`,随后我对这个猜想
进
行了验证 #### 复现环境 1、将重启内存阈值调低到`30M`(memory_limit) 2、将内存检测周期由原来的`60s`改为`10s` 3、程序内有意加载更多的文件,并存储于静态
数
组中 以上3点都是在原规则下,尽快和频繁的触
发
内存超限重启 #### 重现问题的步骤 1、直接在触
发
重启的位置来个输出  2、监控
进
程的内存使用情况来核对触
发
情况 !
文档
isOnline
## 参
数
* ```$client_id``` 客户端的client_id ## 返回值 在线返回1,不在线返回0 如果```$client_id```对应的连接触
发
过onClose回调,则返回## 范例 ```php use \
GatewayWorker
\Lib\Gateway; class Events { ...to_client_id":100,"content":"hello"}' $req_data = json_decode($message, true); // 如果是向某个客户端
发
送
消息Gateway::isOnline($req_data['to_client_id'])) { // 假设your_store_fun是用来保存未读消息的函
数
(这个函
数
不存在,需要自己实现) your_store_fun($message); } else
问答
webman多应用 控
制
器多层嵌套后beforAction会失效
猜测是那个自动解析路由的官方说明有问题,目前找不到具体原因,顺带再问下,多层嵌套的控
制
器只能通过路由自动解析实现,那么怎么为不同的路由设定中间件呢 这个官方没有说明,是否跟正常控
制
器的那种路由一样的设置方法
问答
uniapp前端写了注册对接到Webman Admin自带用户管理,根
据
ai给出的方案无法成功
# 一、新增
数
据
库字段 ```php -- 添加用户来源及第三方登录字段 ALTER TABLE `wa_users` ADD COLUMN `source` varchar(32) COLLATEADD UNIQUE INDEX `idx_openid` (`openid`), ADD INDEX `idx_register_time` (`register_time`); ``` #
二
、控
制
器 app/admin/controller/Miniprogram.php 因Webman Admin插件目录app/admin不存在,所以在/www/wwwroot/webman/plugin//** * 小程序用户注册 */ public function register(Request $request) { // 验证请求
数
据
return json(['code' => 403, 'msg' => '注册过于频繁,请稍后再试']); } // 增加IP注册计
数
(
问答
运行了,但有点问题,一、没有声音,
二
、只能看到本地视频,远程的看不到,请问是什么原因?
运行了,但有点问题,一、没有声音,
二
、只能看到本地视频,远程的看不到,请问是什么原因? php webrtc 关于这个帖子的问题:https://www.workerman.net/a/65
问答
webman 自定义websocket如何由后端主动
发
送
消息?
已经按照文档 https://www.workerman.net/doc/webman/process.html 配置好了websocket,但是如何主动给客户端
发
消息?
问答
wokerman运行一段时间,php
进
程占用100%
strace
进
程后
发
现陷入死循环 [attach]1854[/attach] 这是什么原因造成的?
问答
如何
制
作只能给udp使用的协议
手册上在介绍自定义协议时没有介绍该协议是在tcp下使用的还是udp下使用的,而我在看内置的协议时,
发
现有的协议指定连接必须是tcp对象,有的是连接的抽象对象,有的没有指定,如图,从上到下依次是text,还是说无论协议如何定
制
,想实现tcp或者udp的指定,都必须用worker的transport属性指定.
问答
php5.6应该使用哪个版本的
gatewayworker
?
#### 问题描述 公司php版本不能升级PHP7+,希望可以降低
gatewayworker
版本,这个怎么处理下?感谢大佬帮忙解答
问答
刚学习了一下 推
送
的那个插件
#### 这个插件 可以推
送
https://www.workerman.net/plugin/2 根
据
文档做了浏览器的没啥问题 然后使用了 uniapp打包的在微信里面也可以运行 微信原生的那个要改一下}, success: function (res) { console.log('Auth response:', res.data); // 打印响应
数
据
Object.create(b) : (__.prototype = b.prototype, new __()); } export default Push; ``` 都可以聊天 但是 他只能
发
消息不能记录历史 想用这个改一下 加个聊天记录
发
现这个不好弄呀 想要做一个能记录 聊天记录的 1V1的那种 是不是要用这个 https://www.workerman.net/web-sender还有个问题 如果是自己改 记录聊天记录 是先
发
出去再记录
数
据
库 还是 先记录
数
据
库 再
发
出去
问答
workerman webscoket 希望能支持permessage-deflate
目前项目用户越来越多 流量以及带宽成倍增长 项目这边讨论一致认为 走压缩方案 但workerman webscoket 不支持 permessage-deflate 所以目前只用了nodejs 做转
发
支持permessage-deflate 转
发
意味着性能上不是很友好 项目这边就评估 正确做法一开始就用nodejs 提供更高的可扩展性 感觉workerman 不增加基础扩展 很难留住大用户往往成为过渡产品 资源都浪费了 #### 为此你搜索到了哪些方案及不适用的原因 https://www.workerman.net/q/4902 需要懂得框架底层 轮询事件机
制
才能
二
次开
发
问答
生产环境 Linux 使用 webman 无法操作 Redis
数
据
库
cache:', // 默认缓存有效期 0表示永久缓存 'expire' => 0, // Thinkphp官方没有这个参
数
,由于生成的tag键默认不过期,如果tag键
数
量很大,避免长时间占用内存,可以设置一个超过其他缓存的过期时间,0为不设置 'tag_expire' => 86400 * 30,'tag:', // 连接池配置 'pool' => [ 'max_connections' => 5, // 最大连接
数
'min_connections' => 1, // 最小连接
数
'wait_timeout' => 3, // 从连接池获取连接等待超时时间Redis(); try { // 连接到 Redis 服务器 if ($password) { $redis->auth($password); // 如果需要密码,
进
行身份验证
问答
可以通过设置系统内的tcp keepalive来缩短极端情况的断线吗?
当服务端不要求客户端必须回应心跳检测时,假如客户端遇到掉电等极端情况,这时服务端向客户端
发
送
的心跳
数
据
在TCP层面就会
发
送
超时,遇到这种超时情况TCP会重试多次(**次
数
及间隔依赖操作系统的配置**),这种极端情况从连接断开到服务端检测到可能要持续至少10分钟才触
发
onClose事件回调。 可以通过以下的设置来缩短超时情况下的断线吗?
« 上一页
1
...
154
155
156
157
158
159
160
161
...
446
下一页 »
« 上一页
157
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝