workerman
首页
问答
分享
手册
市场
商业
客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
AI助手
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
是
不
是两台阿里云专网服
务
器通过外网
不
能进行分布式部署呀?
如题 两台阿里服
务
器,现在想进行分布式部署,但是通过外网IP
不
成功
问答
有一种情况下,connection对象无法被释放
首先我怎么确定
不
是我的业
务
代码问题: 就是我的业
务
代码里,没有做任何对这个connection对象的引用。为了确认100%没有做引用,我特意为某个连接做了特殊处理,就是基本上没有业
务
代码。什么情况下无法被释放:我做的是HTTP服
务
,就是在客户端浏览器连接上服
务
器,但是还没有收到响应,就主动的关闭了连接的情况下。 这时候服
务
端的这个connection对象,就无法被正常释放
回
收。我专门研究了,onClose
事
件会触发,destroy方法也会被执行,但是destruct方法无法被触发。 我打印了一下堆栈。但是结果是这个连接
不
能被正常释放。
问答
奇怪:接收非utf8包客户端全部断线?[已解决]
JAVA的同
事
,发数据包给我这边,当没有指定为utf8编码时,他一发送,我这边全部的客户端都会被强制关闭,接收
不
到数据,如果指定为utf8编码,则监听,接收正常。服
务
器接收包为: TEXT协议。 客户端监听为wss协议。 求解决一下。 正在与同
事
找原因中。。。。。。。
问答
后置中间件中获取响应主体内容,并转换为json格式返
回
#### 问题描述 接口返
回
数据用数组,打算在后置中间件中把数组转换为json返
回
给前端,如何在后置中间件里获取response主体内容,并转换为json?尝试用$response->rawBody 就想在中间件中实现,
不
要推荐其它方案,如果需要其它方案,就
不
会在这提问了 RegController 接口代码 ``` namespace app\apiparam = [ 'status'=>1 ]; return showReturnCode(200,$param,'success'); //返
回
的是数组
分享
趣谈程序演变的过程
做一些基础服
务
。那么为了拯救这样的情况出现,我们索性用多张纸且明确划分区域地来完成这样的复杂的、 多功能的程序,每个纸张上都各自有
不
同的ABCD或EFGH,这种编写程序的方式就是面向对象编程; 当然过程对象也可以达到这个
效
果我们上述的所有程序,都
不
能自动的反复的执行; > 这里面包括C、Golang等语言,只要
不
引入一些库就纯粹的运行来说,它们和脚本是无异的 但是我们在
生
活中无时
不
刻的做着重复的
事
儿,毕竟人类的本质是复读机嘛我能
不
能把A\B\C\D打散? 把每张纸聚焦在该做的
事
儿上?可以。, 即便多了真·线程的概念,实际上运行起来也差
不
多,反正也是需要切出去再
回
来的;** “纸张2”除了需要维护一个
不
断查询门卫大爷的逻辑外,
不
需要多余在维护什么,那么这个转圈的
事
儿,就可以变换成如下的逻辑
问答
Gateway 使用curl post
建立好了注册监听tcp机制,所有设备通过监听接口接入并且储存有用信息到数据库,其他
不
同使用平台接入的时候通过自定义的http api 接入 当接收到请求后硬件会有一个异步请求到监听接口 我通过 curlpost 推送给
不
同平台的
不
同接口完成异步。问 使用 curl post 会
不
会产
生
阻塞 或者
效
率问题 应该或者有没有别的解决方式或者方案
问答
webman框架1.5版本,需要对请求
生
命周期中增加全局设置数据和获取怎么做.[已解决]
#### 问题描述 中间件要求接收Webman\Http\Request,这样就
不
能使用support/request,我就没法在中间件使用自定义的请求封装的方法.实际上我只是需要在 一次请求的
生
命周期中,增加在本次请求自己
生
成的全局数据. 没找到相应的方式, $request没有相应的属性操作方法. 都是get的.直接去操作request,给他设置一个属性值,
不
太喜欢这种方式,ide会识别
不
到属性有提示很恶心, 大家有其他方法吗
文档
心跳检测
正常的情况客户端断开连接会向服
务
端发送一个fin包,服
务
端收到fin包后得知客户端连接断开,则立刻触发onClose
事
件
回
调。如果客户端与服
务
端定时有心跳数据传输,则会比较及时的发现连接断开,触发onClose
事
件
回
调。 另外路由节点防火墙会关闭长时间
不
通讯的socket连接,导致socket长连接断开。客户端定时每X秒(推荐小于60秒)向服
务
端发送特定数据(任意数据都可),服
务
端设定为X秒没有收到客户端心跳则认为客户端掉线,并关闭连接触发onClose
回
调。,服
务
端关闭连接并触发onClose
回
调。例如浏览器websocket需要监听onclose
事
件,当发
生
onclose时建立新的连接(为避免需崩可延建立连接)。
问答
守护模式,子线程一个崩溃会导致所有线程都崩溃、重启吗?
情况是这样,用workerman弄了个【任
务
处理器】,300子线程,text协议,
不
对外,只用于本机环
回
地址(127.0.0.1)的使用。一旦用户开启自己的任
务
,就会在一定条件下触发任
务
的执行处理,触发任
务
需要处理时,★任
务
监控器★是
不
执行任
务
处理的,它会把数据发送给【任
务
处理器】去处理。但发现【任
务
处理器】发
生
错误(原因未知,找
不
出来,workerman的日志里没有报错,我自己的日志里也没有报错),这个先
不
管,就是【任
务
处理器】发
生
错误后(跑了十几个小时后出现),redis统计线程使用但现在的这种情况,是
不
是意味着:一旦【任
务
处理器】的300个子线程里只要有一个子线程发
生
崩溃,就会导致300个子线程全部崩溃或者处理
不
了任
务
?然后守护进程是会自动把【任
务
处理器】重启继续跑?这样一个用户出问题,就影响了所有用户…… 这样的话,是
不
是我应当为每个用户分配一个独立自用的【任
务
处理器】?这样一个用户一旦出问题,
不
会影响其他用户?
文档
配置文件
php config('file.key1.key2'); ``` ## 默认值 ```php config($key, $default); ``` config通过第二个参数传递默认值,如果配置
不
存在则返
回
默认值配置
不
存在且没有设置默认值则返
回
null。 ## 自定义配置 开发者可以在`config/`目录下添加自己的配置文件,例如 **config/payment.php** ```php <?,所有配置必须手动修改对应的配置文件,并reload或restart重启 > **注意** > 服
务
器配置`config/server.php`以及进程配置`config/process.php`
不
支持reload,需要restart重启才能
生
效
## 特别提醒 如果你是要在config下的子目录创建配置文件并读取,比如:`config/order/status.php`,那么`config/orderworker进程 'eventLoop' => '', //
事
件循环类,为空时自动使用server.event_loop配置 'context' => [], //
文档
配置文件
php config('file.key1.key2'); ``` ## 默认值 ```php config($key, $default); ``` config通过第二个参数传递默认值,如果配置
不
存在则返
回
默认值配置
不
存在且没有设置默认值则返
回
null。 ## 自定义配置 开发者可以在`config/`目录下添加自己的配置文件,例如 **config/payment.php** ```php <?,所有配置必须手动修改对应的配置文件,并reload或restart重启 > **注意** > 服
务
器配置`config/server.php`以及进程配置`config/process.php`
不
支持reload,需要restart重启才能
生
效
## 特别提醒 如果你是要在config下的子目录创建配置文件并读取,比如:`config/order/status.php`,那么`config/orderworker进程 'eventLoop' => '', //
事
件循环类,为空时自动使用server.event_loop配置 'context' => [], //
问答
webman 里有没有能直接输出原
生
sql 语句的方法?看文档没找到
webman 里有没有能直接输出原
生
sql 语句的方法?看文档没找到,用于写入日志里。
分享
进程、线程、协程等分享
我非常喜欢PHP,
生
活中工作中几乎是能用PHP解决的都尽可能使用PHP,同时也很推崇PHP-cli的开发模式,尤其喜欢workerman/webman,早期webman还未诞
生
的时候我在公司曾使用workerman阻塞** 我去超市买一袋橘子:我需要穿好衣服、下楼、走路、到超市挑选橘子、付款、走路、上楼、到家;在这个流程中,我在买好橘子之前全程被占用,需要做的所有
事
都需要为买橘子服
务
,当我做完这一系列
事
情之后才可以干下一件
事
情PHP中通常来说
不
使用多线程进行编程,通常来说都是使用多进程来实现一些并发
效
果的,比如workerman/webman就是用了fork来进行多进程的处理,通过
不
同的onWorkerStart的业
务
逻辑来实现
不
同的业
务
进程,每种业
务
进程都可以有自己的单/多进程处理方案。我每通知一个外卖员我就在本子上记下一笔,当我自己做完了自己的
事
情以后,我在房间里来
回
踱步,等待外卖员们的
回
执,
回
执一个我就划掉一笔。
问答
workerman做的HTTP服
务
,写的API发现postman测试一直稳定,如果app对接的话,会出现第一次OK,第二次服
务
500,第三次OK,循环
workerman做的HTTP服
务
,写的API发现postman测试一直稳定,如果app对接的话,会出现第一次OK,第二次服
务
500,第三次OK,循环如此。但是服
务
器返
回
500的时候,程序正常执行了。
问答
第三方框架调用gateway推送消息,客户端接收
不
到
在第三方框架调用gateway给客户端发信息,本地windows都是通的,布到服
务
器上客户端一直接
不
到推送的消息。有可能什么原因造成的。 代码追踪到gateway.php的1237行。两个address返
回
的都是true 。 服
务
器和本地代码一致,这种情况从哪方面排查比较靠谱~辛苦大佬解答了
问答
计时器嵌套会
不
会出现问题?
**预期的
效
果**:通过 gateway 向已建立连接的客户端设备发送指令,但由于客户端接收
不
同指令的时间有1s的限制,所以需要进行延时。 Gateway::sendToUid($uid, hex2bin($ins)); sleep(1); } }); ``` 但这种实现方式容易出现服
务
端 } }); }); ``` **疑问**:现在这种方式频繁添加删除定时器,而且出现定时器嵌套,是否会出现什么
不
良影响,如服
务
器负担加重或其他的什么问题?
问答
使用workerman运行web服
务
时 Redis报错
使用workerman运行web服
务
, 在 onworekrStart时 初始化redis 通过Global传递至 onMessage中 , 在使用$redis->get() 时 var_dump返
回
问答
webman 数据库是否可以关闭prepare statment
#### 问题描述 在某数据库里面,开启了prepare statement 的情况下会严重降低性能,所以需要关闭,或者直接手动拼接 SQL #### 为此你搜索到了哪些方案及
不
适用的原因 使用PDO 连接的 attribute 设置值,实际测试下来视乎没有
生
效
,在 mysqli 里面拼接的 SQL 目前看起来没问题.求助大家是否有推荐的解决方案.
分享
做了音色克隆小程序,分享给大家玩玩
上有一个开源的音色克隆项目,这个项目估计很多小伙伴都知道 [fish-speech](https://github.com/fishaudio/fish-speech) 这个项目部署起来有点麻烦,但是
效
果还是
不
错的,我这里有一个
生
成好的成品让大家听听。
问答
gateway wokerman 为啥修改开始端口号后,重启一直报错?
4002 4003 4个端口作为内部通讯端口 $gateway->startPort = 2900;” 后面修改了 $gateway->startPort = 2910;” ``` 重启发现报错提示端口
不
能连接,关键是报错还是2901,2902,2903,2904,2905 (5个),正常哪怕错误是是2911,2912,2913,2914,2915 才对啊,为啥改了startPort没法
生
效
?
« 上一页
1
...
53
54
55
56
57
58
59
60
...
458
下一页 »
« 上一页
56
下一页 »
赞助商
+成为赞助商
×
请作者喝咖啡
×
🔝