workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
请教:网站部分静态资源的路由配置
Route::get('/', function(){ return response('hello webman'); }); }} 我想把首页改成静态文件index.html输出,但路由【2】只会返
回
404,
不
会显示hello webman, 其实我想要的是路由【3】 Route::group('/test', function () { Route::get('/', function(){ return1> 多应用的关系nginx那边
不
好动,location
不
能单独对域名处理,会影响所有的,如果有方案只影响一个应用也行,我的配置是if ($host = 'web.test.com.cn'){set $flag "test"; } rewrite ^/(.*)$ /$flag/$1 last; 2> webman路由【2】
不
能正常工作,路由【1】是正常的【动态的】,我想要实现路由【3】的
效
果没成功,反复测试路由【2】这里就卡死了;路由【2】、路由【3】只会返
回
404 我要直接访问域名web.test.com.cn与就是访问web.test.com.cn/index.html的
效
果,麻烦大神指点一下
问答
gateway为什么它
不
会把业
务
请求发到局域网别人的bussinessworker上去呢?
我现在是用的是阿里云的云服
务
器,它给了我一个10.x.x.x的内网IP,我想使用的是一gateway多worker 分离部署(可能其它人也在阿里云使用workerman同一个局域网),那我如何才能使gateway把进来的业
务
需求分发到我的bussinessworker中去而
不
是别人的?为什么它
不
会发到局域网别人的bussinessworker上去呢?
问答
关于重启偶尔出现not ready情况
这个是
生
成环境下一次重启偶然出现的!1362ce86a0dc05.png) 按照我对Register注册进程的理解,是否会存在一种情况: 当BusinessWorker重启时,由于网络或者其他原因,导致Register没有触发onClose
事
件(因为socket并
不
保证一定会触发onCLose),导致这个问题的出现; 如果存在这种情况的话,我是否可以在Register用定时器去维护一个心跳,判断如果长时间没有数据交流,就删除这个连接。
问答
关于 SSE 跟 chunk 方式返
回
,中间件还有授权这些怎么处理?
#### 问题描述 最近在搞 gpt 的 stream 方式返
回
,如果用 SSE 跟 chunk 方式返
回
,中间件还有授权这些怎么处理?
问答
自带的mysql为什么插入成功,但是返
回
的0?
insertId = self::$conn->insert($this->table)->cols($data)->query(); echo $insertId; 数据库里面已经有数据了,但是这个始终是返
回
0
问答
webman
事
件插件 基于illuminate/events
这个 handle里
不
能return值呀
分享
PHP 高性能框架 Workerman 凭什么能硬刚 Swoole ?
最后将请求
生
成的结果返
回
给代理服
务
,比如 Nginx、Apache 等。IO 多路复用技术可以让程序在遇到类似 MySQL 读写、Redis 操作、网络请求、文件读取等 IO 操作时,
不
会阻塞整个进程的执行,达到 IO 操作非阻塞的
效
果。Swoole
不
仅仅只是简单的使用该技术,而是将该技术在 Swoole 上体现的淋漓尽致贯穿始终,连 Swoole 中引以为傲的协程都是基于
事
件循环「EventLoop」机制实现的。Workerman 没有类似 Swoole 的并发管理、协程管理、通道管理、通道通信、进程间的通信等底层功能,这些繁冗的功能在程序的运行过程中也存在着一定的系统开销,当程序的复杂度提升,也会显而易见的影响到整个服
务
的性能和
效
率透过这篇文章来看基于 PHP 本身实现的 Workerman 也
不
是很差嘛,所以大家量力而行,鞋子合
不
合适只有穿在自己脚上才知道,别把名牌的鞋子硬
生
生
的套在自己脚上,最终的结果反而
不
尽如人意得
不
偿失。
问答
phpsocket.io如何向一个组广播?
join('group name'); 2,向这个分组广播信息 $io->to('group name')->emit('event name', $data); 发觉只有自己的客户端收到信息,其他客户端收
不
到只能收到自己的信息, 这个group name 我写的是121212 ,如果直接 $io->emit('event name', $data); 所有的客户端都可以收到的到,但没有达到分组的功能, 请问如何什么
回
事
问答
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就会使用训练集里的数据
回
复问题。 ### 测试结果 !
问答
workerman 多个进程共享数据(能
不
能直接在内存共享?或者多线程)
我有两个进程,想操作同一个资源,
不
想借助文件或者数据库存储(
效
率低),上网上搜了一下可以内存共享,我想问一下,workerman有什么解决方法吗?,多线程版本可以吗?
问答
workerman的socketio跑了十几个小时后,广播
不
了
求大神指导下 我在linux服
务
器上,用screen开了socketio。前面几个小时就可以正常运行,比如把客户端分组,然后广播什么的。但是后面总是跑了十几个小时后,客户端连的上,但是就是只能触发连接时的函数,然后其他都触发
不
了。网上找了很多资料也
不
知道怎么改,打算实在
不
行就写个定时脚本在开启一遍。大神们有什么更好的解决办法吗 ```php self::$sender_io->on('connection', function($socket){ // 当客户端发来登录
事
件时触发
问答
gateworker中,频繁刷新页面获取新的client_id,之前没用的lcient_id会留在内存里吗?
gateworker中,请求新页面会
生
成一个client_id,如果
不
断刷新此页面,会得到
不
同的client_id,那之前的client_id还会留在内存里吗,这样频繁的刷新页面会
不
会造成服
务
器很大的负担呢
分享
高速共享缓存插件分享
整体项目分为配置服
务
、http-api服
务
、websocket服
务
三大部分,其中配置管理主要是兼容客户端
生
成的配置数据进行导入导出转换加载,底层使用MySQL进行储存,多服
务
间使用Redis进行一级缓存后续我们的目标锁定在了共享内存上,因为共享内存可以轻易的在进程间进行通讯交换,而且
不
存在深拷贝和网络等问题,
效
率、性能非常的高,整体微秒级别的响应满足我们的需求;于是我基于PHP的拓展APCu封装了适合我们业
务
场景的插件包进行使用# webman-shared-cache 我们的基础应用实现了定时器来从MySQL数据库读取配置信息,定时器的处理器也在读取数据刷入Redis的同时触发共享内存的更新
事
件,上层业
务
通过更新
事
件的
回
调出发会将的操作,为了业
务
的原子性,我们希望这多次的操作要在一个原子性内完成,所以需要一个锁来进行隔离,以免在多进程的环境下被其他进程的操作污染,整体是类似MySQl的
事
务
的: ```php protected- 默认储存空间和子通道储存空间是互斥的,也就是说当存在子通道储存空间时,是
不
存在--default--的,反之亦然;子通道储存空间是当当前通道存在监听器时
生
成的,而在监听器产
生
前,消息会暂存在--default
问答
workerman 在类里面无限递归行
不
行
```php public function test(){ //这里是要随机时间的,当然实际肯定
不
是现在这样 $time = rand(10,15); Timer::add($time,function (){ //执行完自己代码后 $this->test();//这里重新
生
成定时器 },[],false) } ``` 然后进程启动后掉要一次 $this->test(); 这个写法会死人吗......总感觉怪怪的,
不
行的话有没有好点思路呀,求帮忙,谢谢
问答
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.
问答
GatewayWorker 异步非阻塞
问题2:这种异步非阻塞 跟 nginx 的那种异步非阻塞 是
不
是相同的机制,gateway收到请求后,转发给worker进程,
不
会一直阻塞等待worker进程返
回
结果,转而马上处理下一个请求,worker进程处理完毕后,会主动通知gateway进程,然后gateway进程 再把结果返
回
给客户端 问题3:gateway 与 worker 进程,每个进程里面,都是单线程的吗?问题4:所有的业
务
,都在worker进程中处理,那么如果,其中一个请求,处理时间很长,这个时候,worker进程就会阻塞,直到把这个请求处理完毕之后,才会处理下一个请求吧?总体而言,感觉跟 nginx & php-fpm 有点点类似,nginx 通过
事
件驱动机制,与 后端的 php-fpm 进行异步非阻塞通信,如果 php-fpm 处理一个请求,稍慢,就会阻塞下一个请求处理以上,这样理解,
不
知道对
不
对,还劳烦老大指点一二,感激
不
尽
分享
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-fmp 更没有必要在程序中做连接池,因为
不
但一个请求是从上到下都
不
会有其他请求干扰(协程),也没有多线程问题。请求结束会销毁掉所有资源,但是做一个外部的连接池(非程序中)比如SMProxy有必要,外部程序做连接池,取来即用,
不
和进程资源一起销毁。* 而swoole协程和java的线程有必要数据库连接池,因为协程
不
是从上到下执行,有可能多个请求同时在被一个进程在处理,有可能并行对数据库的操作,如果还是用一个连接会出现问题,协程或者线程需要自己的连接资源无论协程和线程都有可能随时销毁,
不
是和进程的
生
命周期一样同
生
共死,创建连接池能避免重复
生
成连接带来的消耗。
问答
webman里能使用yar 提供服
务
吗
#### 问题描述 其它php业
务
系统调用 用户服
务
,用户服
务
之前用yar提供服
务
端 服
务
比较老(php 5.5)(fpm模式的) 业
务
系统比较多也比较杂,
不
想改业
务
系统的调用代码,新服
务
升级要对调用端无感知怎么重构用户服
务
呢,使用webman的话 #### 为此你搜索到了哪些方案及
不
适用的原因 webman是常驻的,和yar
不
是很配吧 其它语言如 go实现yar协议,用go重构?
« 上一页
1
...
71
72
73
74
75
76
77
78
...
482
下一页 »
« 上一页
74
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝