workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
分享
docker
生
产环境文件
# 解决文件挂在容器内外权限
不
一致问题 # USERNAME 用户名 必须主服
务
器存在的用户 ARG USERNAME=www # USERID 用户id 对应的用户id ARG USERID=1001# 下面的 curl -sS https://getcomposer.org/installer | php 可以
不
需要 二选一 # https://getcomposer.org/versionsigbinary \ # 开启 opcache && docker-php-ext-enable opcache \ # 重要 配置 event 扩加载顺序 到 sockets 后面
不
然会报错提示找
不
到 socket 相关函数 && mv /usr/local/etc/php/conf.d/docker-php-ext-event.ini /usr/local/etc/php/conf.dUSERNAME} # 定义启动脚本 CMD [ "/start.sh" ] ``` docker-compose.yml ``` services: webman: # 解决容器内网文件权限
不
一致问题
问答
workerman 在类里面无限递归行
不
行
```php public function test(){ //这里是要随机时间的,当然实际肯定
不
是现在这样 $time = rand(10,15); Timer::add($time,function (){ //执行完自己代码后 $this->test();//这里重新
生
成定时器 },[],false) } ``` 然后进程启动后掉要一次 $this->test(); 这个写法会死人吗......总感觉怪怪的,
不
行的话有没有好点思路呀,求帮忙,谢谢
分享
PHP 高性能框架 Workerman 凭什么能硬刚 Swoole ?
最后将请求
生
成的结果返
回
给代理服
务
,比如 Nginx、Apache 等。IO 多路复用技术可以让程序在遇到类似 MySQL 读写、Redis 操作、网络请求、文件读取等 IO 操作时,
不
会阻塞整个进程的执行,达到 IO 操作非阻塞的
效
果。Swoole
不
仅仅只是简单的使用该技术,而是将该技术在 Swoole 上体现的淋漓尽致贯穿始终,连 Swoole 中引以为傲的协程都是基于
事
件循环「EventLoop」机制实现的。Workerman 没有类似 Swoole 的并发管理、协程管理、通道管理、通道通信、进程间的通信等底层功能,这些繁冗的功能在程序的运行过程中也存在着一定的系统开销,当程序的复杂度提升,也会显而易见的影响到整个服
务
的性能和
效
率透过这篇文章来看基于 PHP 本身实现的 Workerman 也
不
是很差嘛,所以大家量力而行,鞋子合
不
合适只有穿在自己脚上才知道,别把名牌的鞋子硬
生
生
的套在自己脚上,最终的结果反而
不
尽如人意得
不
偿失。
问答
workerman的socketio跑了十几个小时后,广播
不
了
求大神指导下 我在linux服
务
器上,用screen开了socketio。前面几个小时就可以正常运行,比如把客户端分组,然后广播什么的。但是后面总是跑了十几个小时后,客户端连的上,但是就是只能触发连接时的函数,然后其他都触发
不
了。网上找了很多资料也
不
知道怎么改,打算实在
不
行就写个定时脚本在开启一遍。大神们有什么更好的解决办法吗 ```php self::$sender_io->on('connection', function($socket){ // 当客户端发来登录
事
件时触发
问答
Webman AI + DeepSeek本地训练,打造私有知识库
服
务
端
不
支持,要用redis-stack才行) ``` docker pull docker.1ms.run/redis/redis-stack mkdir /home/data/redis -p docker> **注意** > 如果你
不
想让你训练的模型
回
复训练内容以外的数据,可以在角色提示词里明示。例如webman手册助手的角色提示词如下: “webman是一个高性能php框架,你是一个webman助手,以下是webman文档,请根据文档
回
复,如果无法得到答案或者
不
是webman相关的问题则
回
复文档中未找到对应的答案请确保
回
复正确。” ### 设置角色 !(前端用户需要刷新页面角色才能
生
效
) AI就会使用训练集里的数据
回
复问题。 ### 测试结果 !
问答
webman请问下当前服
务
在QPS15000左右,这个时候需要重启服
务
器
webman请问下当前服
务
在QPS15000左右,这个时候需要重启服
务
器 怎么样可以安全重启服
务
,
不
会在重启服
务
器的时候启动webman服
务
卡死
文档
推送
# webman/push `webman/push` 是一个免费的推送服
务
端插件,客户端基于订阅模式,兼容 [pusher](https://pusher.com),拥有众多客户端如JS、安卓(java频道和
事
件是任意字符串,
不
需要服
务
端预先配置。(推送客户端
不
会收到自己推送的数据)。> 接收处理webhook
事
件的代码参考 `config/plugin/webman/push/route.php` 里面的逻辑 > 由于刷新页面导致用户短暂离线
不
应该算作离线,webman/push会做延迟判断
不
写端口 > 3.
分享
高速共享缓存插件分享
整体项目分为配置服
务
、http-api服
务
、websocket服
务
三大部分,其中配置管理主要是兼容客户端
生
成的配置数据进行导入导出转换加载,底层使用MySQL进行储存,多服
务
间使用Redis进行一级缓存后续我们的目标锁定在了共享内存上,因为共享内存可以轻易的在进程间进行通讯交换,而且
不
存在深拷贝和网络等问题,
效
率、性能非常的高,整体微秒级别的响应满足我们的需求;于是我基于PHP的拓展APCu封装了适合我们业
务
场景的插件包进行使用# webman-shared-cache 我们的基础应用实现了定时器来从MySQL数据库读取配置信息,定时器的处理器也在读取数据刷入Redis的同时触发共享内存的更新
事
件,上层业
务
通过更新
事
件的
回
调出发会将的操作,为了业
务
的原子性,我们希望这多次的操作要在一个原子性内完成,所以需要一个锁来进行隔离,以免在多进程的环境下被其他进程的操作污染,整体是类似MySQl的
事
务
的: ```php protected- 默认储存空间和子通道储存空间是互斥的,也就是说当存在子通道储存空间时,是
不
存在--default--的,反之亦然;子通道储存空间是当当前通道存在监听器时
生
成的,而在监听器产
生
前,消息会暂存在--default
问答
GatewayWorker 异步非阻塞
问题2:这种异步非阻塞 跟 nginx 的那种异步非阻塞 是
不
是相同的机制,gateway收到请求后,转发给worker进程,
不
会一直阻塞等待worker进程返
回
结果,转而马上处理下一个请求,worker进程处理完毕后,会主动通知gateway进程,然后gateway进程 再把结果返
回
给客户端 问题3:gateway 与 worker 进程,每个进程里面,都是单线程的吗?问题4:所有的业
务
,都在worker进程中处理,那么如果,其中一个请求,处理时间很长,这个时候,worker进程就会阻塞,直到把这个请求处理完毕之后,才会处理下一个请求吧?总体而言,感觉跟 nginx & php-fpm 有点点类似,nginx 通过
事
件驱动机制,与 后端的 php-fpm 进行异步非阻塞通信,如果 php-fpm 处理一个请求,稍慢,就会阻塞下一个请求处理以上,这样理解,
不
知道对
不
对,还劳烦老大指点一二,感激
不
尽
问答
大家认为workerman有必要在程序中用数据库连接池吗? 讨论一下。
因为
不
是多线程,或协程,所以一个进程中从请求来临到请求结束都用一个数据库连接,下一个请求来临只要这个链接还有
效
还可以接续用,线程
不
会随着请求的结束而结束,连接池创建多个数据库连接只能是浪费。* php-fmp 更没有必要在程序中做连接池,因为
不
但一个请求是从上到下都
不
会有其他请求干扰(协程),也没有多线程问题。请求结束会销毁掉所有资源,但是做一个外部的连接池(非程序中)比如SMProxy有必要,外部程序做连接池,取来即用,
不
和进程资源一起销毁。* 而swoole协程和java的线程有必要数据库连接池,因为协程
不
是从上到下执行,有可能多个请求同时在被一个进程在处理,有可能并行对数据库的操作,如果还是用一个连接会出现问题,协程或者线程需要自己的连接资源无论协程和线程都有可能随时销毁,
不
是和进程的
生
命周期一样同
生
共死,创建连接池能避免重复
生
成连接带来的消耗。
问答
nginx代理后响应头设置失败
#### 问题描述 ### nginx设置代理后,响应头设置无
效
,麻烦大佬指教一下,谢谢. 以下是nginx代理设置  实际返
回
的响应头 !
问答
webman里能使用yar 提供服
务
吗
#### 问题描述 其它php业
务
系统调用 用户服
务
,用户服
务
之前用yar提供服
务
端 服
务
比较老(php 5.5)(fpm模式的) 业
务
系统比较多也比较杂,
不
想改业
务
系统的调用代码,新服
务
升级要对调用端无感知怎么重构用户服
务
呢,使用webman的话 #### 为此你搜索到了哪些方案及
不
适用的原因 webman是常驻的,和yar
不
是很配吧 其它语言如 go实现yar协议,用go重构?
问答
js文件3.0以上的版本连
不
上socketio,服
务
端的socketio需要修改什么设置吗
js文件3.0以上的版本连
不
上socketio,服
务
端的socketio需要修改什么设置吗
问答
session管理的问题,
不
知道是
不
是bug
session()->get 一直返
回
NULL 我在一个controller里写的 session()->set('name') 在另一个controller里 session()->get('name'),返
回
一直是null,前端是vue,求大神给予指引!
问答
分布式服
务
器Gateway连接数
不
正常
master.png是主服的连接数和请求数 server2.png是分布式2号服
务
器的连接数和请求数 businessWorker似乎是正常的,但Gateway连接数为啥没起来,总请求数也是一模一样
问答
能否给closeClient增加一个$reason参数返
回
给客户端么?
能否给closeClient增加一个$reason参数返
回
给客户端么? 或者增加关闭响应$code参数
问答
AsyncTcpConnection 请求,onMessage中send的数据
不
被代理服
务
器解析
#### 在构建ai应用的时候 我使用AsyncTcpConnection向接口发起请求,接口测试一切正常,但是代理服
务
器读
不
出来onMessage中send的数据 #### 程序代码或配置 ```onMessage 中send的信息都没有输出 ``` #### 操作系统环境及workerman/webman等具体版本 使用的webman 1.5.0 代理服
务
器为vite的proxy
问答
关于内网穿透应用的两个问题
1,内网穿透数据是
不
是通过服
务
器端中转实现的?对服
务
器的带宽要求高
不
高? 还是说说只是做为地址的转发,用户访问是直接和本地客户端发
生
数据交换?2,内网穿透
不
是https的,数据保密性是
不
是没有保证? 请内行给答疑一下,谢谢
文档
创建https服
务
# 创建https服
务
**问:** Workerman如何创建一个[https](https://baike.baidu.com/item/https)服
务
,使得客户端可以用过[https](https两种方案选其一即可,
不
可同时设置。2、证书一般是与域名绑定的,所以测试的时候请使用域名,
不
要使用ip。 3、如果使用https无法访问请检查服
务
器防火墙。> **注意** > nginx代理SSL和Workerman设置SSL二选一,
不
能同时开启。,返
回
http协议的数据给nginx 4、nginx再将http协议的数据转换成https,转发给客户端 ### nginx配置参考 **前提条件及准备工作:** 1、假设Workerman监听的是
问答
现在我是用Gateway/workerman的text协议的,我该怎样影射
生
成的client_id到我需要uid呢?
现在我是用Gateway/workerman的text协议的,我该怎样影射
生
成的client_id到我需要uid呢?
« 上一页
1
...
71
72
73
74
75
76
77
78
...
480
下一页 »
« 上一页
74
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝