workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
关于阻塞的疑问
我用的workerman3.3.5,用户每次请求我服务器的php页面,PHP页面在收到用户请求后,会
发
一个内部消息给workerman,workerman收到后会
进
行
数
据
库写入操作,大概需要20秒。服务器是单核2G,我现在
进
程
数
设置的是5,如果同时在线人
数
太多,5个
进
程都在阻塞的话,那么新的用户请求
发
出后,workerman是怎么操作,一直等待阻塞完成后继续
数
据
操作,还是后面的请求就不执行了?
文档
onConnect
# onConnect ## 说明: ```php callback Worker::$onConnect ``` 当客户端与Workerman建立连接时(TCP三次握手完成后)触
发
的回调函
数
。注意:onConnect事件仅仅代表客户端与Workerman完成了TCP三次握手,这时客户端还没有
发
来任何
数
据
,此时除了通过```$connection->getRemoteIp()```获得对方ip,没有其他可以鉴别客户端的
数
据
或者信息,所以在onConnect事件里无法确认对方是谁。要想知道对方是谁,需要客户端
发
送
鉴权
数
据
,例如某个token或者用户名密码之类,在[onMessage回调](on-message.md)里做鉴权。## 回调函
数
的参
数
``` $connection ``` 连接对象,即[TcpConnection实例](../tcp-connection.md),用于操作客户端连接,如[
发
送
数
据
](..
问答
GatewayWorker
客户端如何调用服务端的方法
客户端调用服务端的登录方法获取登录结果,前端是javascirpt,后端是
GatewayWorker
例如后端有个login的方法,前台js如何请求login方法并根
据
返回的结果做相应的处理?
问答
关于异步任务
能否自动切换到第
二
台服务器吗?127.0.0.1,如果是集群就是lvs的ip $task_connection = new AsyncTcpConnection('Text://127.0.0.1:12345'); // 任务及参
数
数
据
send_mail', 'args' => array('from'=>'xxx', 'to'=>'xxx', 'contents'=>'xxx'), ); //
发
送
数
据
问答
服务端定时器能都定时到每秒
发
送
多少次消息
我这边是在后端计算前段的走路 因为是共享的场景 就像贪吃蛇网络版一样 如果前段来走位置同步
发
送
消息的频率的别的客户端同步会有延时 所以我这边是做在后端的 但是后端能设置定时器的时间单位是秒吧 只能一秒一次
问答
解决
Gatewayworker
负载均衡不均PR,
#### 问题描述 还请
Gatewayworker
大佬去看看呢,实现思路也比较简单。Gateway 内部维护一个
数
组结构,后续上线的businessworker 初始化0,后续谁的连接
数
小就优先分
发
给谁。分布式部署如果businessworker 性能不足的时候,需要增加几十个worker干活,新来的客户端连接会优先分配给刚上线businessworker
进
程,直到他们与运行已久的
进
程连接
数
相同,才会逐个轮训,最终达到连接
数
均匀。
问答
服务端如何推
送
最近刚看workerman,我想问下文档上主动推
送
的定时器应该写在哪,并且该如何触
发
问答
webman 文件监控
GatewayWorker
#### 问题描述 webman 使用
GatewayWorker
的时候 文件监控 监控不到
GatewayWorker
的文件,改哪里可以监控它
问答
gateway worker没有根
据
client_id或uid查寻已加入哪些群组的方法吗?
#### 问题描述 问题1: gateway worker当群组一成员因网络问题掉线了以后(非正常退出),能否根
据
该成员重新登录的client_id或uid查询已经加入的群组id(文档没找到相关接口)问题2: 用户在一个群组房间里面
进
行游戏,怎么判断对方是否一直在线或掉线或已经退出房间,不知道这个方案是否可行(或者有没有更佳的方案):创建一个房间后,每个成员都要
发
送
心跳包到房间,然后服务器在群
发
消息里面返回各个成员的在线状态
问答
webman框架【表添加新字段后,添加
数
据
报错,需要restart才能添加
数
据
】
#### 问题描述 分析表需要灵活添加字段,添加字段后插入
数
据
操作提示报错,找不到该字段。需要执行php start.php restart -d才能正常插入。
问答
生产环境报错Error package错误
img/20240812/1266b9da16f458.png)运行了很久的生成环境突然报了很多Error package. package_length的错误,搜了下之前提问的记录,也有人这样,说是是
发
的
数
据
不符合协议导致的,如果是运行了很久的生产环境应该不是这个问题导致的吧,后来在启动的时候加了这个TcpConnection::$defaultMaxPackageSize修改了包的限
制
是解决了这个问题,但是从改了这个之后每隔一段时间经常在某个时间点就大量的
进
程busy了,要杀
进
程重启才能好,不知道是不是改这个导致的
问答
webman-admin与tcp长连接如何做交互
假设有一个简单的后台页面(一个输入框和一个
发
送
按钮) 同时后台也是用gateway-worker监听tcp消息 期望点击“
发
送
”按钮的时候(
发
送
tcp消息)能够显示接收的响应内容。当接收到tcp的响应消息的时候一般要如何与后台网页端交互(比如弹出layui.popup) chatgpt的回答是网页端通过websocket链接,tcp把接收到内容推
送
到websocket,但是感觉这个方案有点多余了tcp的主要功能只是接收tcp客户端上传的内容存入到
数
据
库。 后台的大部分功能只是显示
数
据
库的内容以及相关统计 只有少部分功能像提问的功能这样的。 有没有比较简单又好维护的方案推荐?
问答
[已解决]新手问题 怎么样让一个
进
程处理多个客户端连接
在win上跑了段代码,但是只能通过一个网页
进
行连接,开第
二
个网页就没法连接了 代码是一个博客上找的,地址是:http://blog.csdn.net/github_26672553/article/details/54932788 请问怎么样可以让一个
进
程处理多个客户端连接
问答
webman
数
据
库是否可以关闭prepare statment
#### 问题描述 在某
数
据
库里面,开启了prepare statement 的情况下会严重降低性能,所以需要关闭,或者直接手动拼接 SQL #### 为此你搜索到了哪些方案及不适用的原因 使用
问答
为什么我ab测试
数
据
库部分,比原生php+mysql慢?
为什么我ab测试
数
据
库部分,比原生php+mysql慢? 慢了好多 不知道哪里调整  这个是webman的测压
数
据
webman比原生慢了大概10倍 直接输出字符串无mysql交互,webman
问答
echo无法正常
数
据
的奇怪现象
最近在看wm源码,
发
现了一个奇怪的现象 parseCommand方法中有一个调用 ```php $mode = ''; if ($command === 'start') { if ($command2echo是无法输出的,但是 echo "123213\n"; static::log("Workerman $command $mode"); 这个echo又能正常输出了 源码我看了一遍,没有
发
现什么问题,不知道是什么原因造成的,用的是linux,非守护
进
程模式调试
问答
webman-admin左侧菜单js报错
[](/upload/img/20230817/1764ddbc4aefd5.png) 如图,有时刷新页面的时候会出现此js报错,无法加载左侧全部菜单,第
二
遍刷新就正常了,当前页面的菜单不是后台一键生成的,是我自己手动添加
进
去的控
制
器文件,请问大家有遇到过这问题吗?
问答
webman 上传文件 获取的文件名 和预期不符
问题如下 上传的是 file文件
二
进
制
文件名是 name 但是接收到后 读取到的文件名 确实webkitRelativePath 带路径的 我后端应该获取到的是不带路径的 但是看了下源码没有找到对应的方法
问答
$_SESSION 异常报错导致
进
程busy
phpwork/subway-gatewaywoker/vendor/workerman/gateway-worker/src/BusinessWorker.php:424 Stack trace: #0 :
GatewayWorker
Workerman\Worker->run() #6 /mnt/e/phpwork/subway-gatewaywoker/vendor/workerman/workerman/Worker.php(1488):
GatewayWorker
subway-gatewaywoker/vendor/workerman/workerman/Worker.php(1318): Workerman\Worker::forkOneWorkerForLinux(Object(
GatewayWorker
) #11 {main} Worker process terminated ``` worker exit with status 64000服务端在运行一定时间后会出现busy情况,但是排查了一圈
发
现业务内并没有造成循环的问题用文档中的strace看了之后kill掉pid后就不busy了,但是报了这个问题,所以是不是这个问题导致
进
程一直busy呢?如何解决呢?谢谢。
问答
向不存在的表写入
数
据
应该提示错误,确没有提示
#### 问题描述 这里详细描述问题 向一个不存在的表test2,插入
数
据
,却不提示错误,启动命令行也没有想关错误 #### 程序代码 public function view(Request $Edition) workerman/workerman ^5.1 || dev-master webman: versions : * v2.1.1 启用了协程,协程用的swoole 5.1.5版本 ,另外控
制
器复用也启用了的
« 上一页
1
...
113
114
115
116
117
118
119
120
...
449
下一页 »
« 上一页
116
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝