workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
文档
对象和资源的持久化
# 对象和资源的持久化 在传统的Web开
发
中,PHP创建的对象、
数
据
、资源等会在请求完毕后全部释放,导致很难做到持久化。而在Workerman中可以轻松做到这些。在Workerman中如果想在内存中永久保存某些
数
据
资源,可以将资源放到全局变量中或者类的静态成员中。例如下面的代码: 用一个全局变量```$connection_count```保存一个当前
进
程的客户端连接
数
。 ```php <?'/vendor/autoload.php'; // 全局变量,保存当前
进
程的客户端连接
数
$connection_count = 0; $worker = new Worker('tcp://0.0.0.0:1236'); $worker->onConnect = function(TcpConnection $connection) { // 有新的客户端连接时,连接
数
+1 global
问答
$request->action返回的控
制
器名称是否为小写?
$request->action返回的控
制
器名称是否为小写? 测试了一下,是这样。 不知道是不是永远这样。
问答
gatewayworker
运行一段时间后出sendAndRecv 异常,导致worker退出
gatewayworker
运行一段时间后出sendAndRecv 异常,导致worker退出 ``` pid:62 Exception: can not connect to tcp://127.0.0.1Lib/Gateway.php:1143 Stack trace: #0 /app/vendor/workerman/gateway-worker/src/Lib/Gateway.php(1092):
GatewayWorker
\Lib\Gateway::sendAndRecv('127.0.0.1:39130', Array) #1 /app/Applications/Server/Events.php(159):
GatewayWorker
BusinessWorker.php(197): Workerman\Worker->run() #9 /app/vendor/workerman/workerman/Worker.php(1541):
GatewayWorker
#10 /app/vendor/workerman/workerman/Worker.php(1371): Workerman\Worker::forkOneWorkerForLinux(Object(
GatewayWorker
问答
webman 程序创建.php文件
问题一,在程序运行过程中,场景: 添加某条
数
据
的时候我需要给这条
数
据
创建一个单独的表,既然添加了表,我就需要给它再添加一个model文件,当这个model文件创立的时候,该怎么让正式环境自动更新这个呢?问题
二
,上面说到会动态创建model,那么我需要定义一个公共方法去new这些model,然后直接把model return 出去,这样做会不会有什么影响? 请不要抛开问题谈方案,谢谢大佬
问答
物联网设备命令问题 已解决
异步并
发
对同一个设备
发
送
多条指令问题, 加入了微秒
数
比较来解决
分享
分享个radio的单选组件编辑页选中状态的处理方案
> 起因:使用了webman-admin表单构建工具做了个单选组件后
发
现新增正常的,而编辑时
发
现无法根
据
表中的值
进
行同步checked。### 解决过程 先查看了下update页生成的代码,表单初始化化时会将拿到的
数
据
根
据
那么
进
行val赋值。 而我们的radio组件每一个name都是一致的,很可能都会赋值为表中的值。新增了一条后,
数
据
库back_button字段的vlaue为2。
进
行控
制
台打印,果然4条input的value全部为2。这就好办了,因为刚好我的value就是0,1,2,3这样,刚好和
数
组默认下标一致。// 拿到第一个的value value = parseInt(back_buttons[0].value); ``` 然后将
数
组中的下标为
问答
gatewayworker
报错error3,error4,11,64000
最近
gatewayworker
报错error3,error4,exit_status:11,exit_status:64000. 1:出现error4应该是自己的注册地址设置的有问题,现在已经改成了127.0.0.1,应该也就不存在死循环和代码阻塞 3:exit_status:11:文档说是
发
生coredump,一般是使用了不稳定扩展,在php.ini中注释对应扩展就可以了。可是我怎么判断是哪个扩展呢?
问答
麻烦大佬们了...关于cookie的疑惑
逻辑全部在service层.控
制
器层只负责接收参
数
,和返回
数
据
. 这个是service层的逻辑,这是登录成功  这个是控
制
器层 !刚看在仔细看手册的请求,响应...貌似是没有对cookie删除的操作啊,退出登录操作,需要对cookie删除操作..难道是从新复
制
为空??
问答
为什么始终只有一个
进
程接收请求
我在使用过程中
发
现自己不管怎么试,所有请求都打在一个
进
程上面。然后自己写了个简单的示例,使用 sleep() 阻塞住
进
程,哪怕其中一个
进
程阻塞了,其它的请求依然打在这个
进
程上面,其它
进
程全部旁观。sleep(5); $connection->send('Block sleep 5 seconds.'); }; Worker::runAll(); ``` 不管怎么试,都只有一个
进
程接收了请求,我用两个浏览器,用 curl 命令,或者在两台IP不同的机器上
发
起,都是这样。
问答
关于webman-admin的使用心得
#### 问题描述 我看到webman官方出的admin里面有一个插件机
制
,就想着拿webman-admin配合开
发
一些小游戏,微商城分销之类的插件可以挂在这个插件上,让别人可以快速直接下载安装使用,但安装了以后,
发
现有些地方暂时还不知道有什么好的方法实现,遇到的问题如下 #### 1、关于插件ORM机
制
webman使用的ORM
数
据
库默认是laravel机
制
,而我是从TP转过来的,习惯了TP的那种,希望大大能在我的这些建议得到一些完善webman-admin的思路 ### 2、关于应用插件CURD生成机
制
webman应用插件的的CURD生成的控
制
器,模型,默认是在官方的插件里面的,假如我做了一个插件,想让CURD生成的文件是在我的插件目录下,也可以快速导出菜单放到我的插件目录下,这样会不会促
进
更多人来开
发
这个插件机
制
呢?### 4、关于后台一些权限按钮及自定义按钮问题 假如,列表中的添加记录这个按钮,我想让他根
据
权限显示,没有权限则不显示,有权限则显示,这个该如何弄呢?
问答
[think\exception\ThrowableError] Fatal error: Class '
GatewayWorker
\Register' not found
Fatal error: Class '
GatewayWorker
\Register' not found 原来运行正常 更换服务器出现错误 原来服务器是
问答
请教关于聊天室房间在线人
数
问题
用workmanchat demo 改了个聊天的室 现在有个功能是 定时获取房间的人
数
代码如下  现在的问题是 当时执行的时候 获取各个房间的人
数
是准确的 但是当隔了一天后,或者说隔了一段时间后这个统计人
数
的
数
据
就不对了 始终是几个房间,几个相当的
数
据
而实际在某个房间的消息中通过 Gateway::getClientSessionsByGroup($room_id); 然后通过 count这个列表 获取的
数
据
又是准确的 百思不得期间, 求大神赐教:)
问答
GatewayWorker
与mvc等框架结合,如何使用定时器功能?
#### 问题描述
GatewayWorker
与mvc等框架结合,如何使用定时器功能?#### 为此你搜索到了哪些方案及不适用的原因 因为现有mvc框架项目与
GatewayWorker
独立部署互不干扰,所以不知道怎么在mvc中如何是用定时器
问答
大佬们,请问这段java代码如何在webman里实现。。
#### 问题描述 使用php获取pubkey.bin以后,获取到了
二
进
制
文件,但是始终无法用X509加载 这是php代码 ```php $file = 'pubkey.bin'; $handle =
问答
GatewayWorker
返回类型若设置了binary frame (opcode 2)
如题:
GatewayWorker
返回类型若设置了 $connection->websocketType = Workerman\Protocols\Websocket::BINARY_TYPE_ARRAYBUFFER
问答
阿里云服务器cpu过高
大神,我用过的是gateway worker,现在
发
现服务器cpu很高,于是用top指令查看了一下,如左图所示,上面几个
进
程都占了很多cpu,然后用cd /proc/PIDID查看了一下对应的pid,
发
现如图右所示,cwd指向的都是
gatewayworker
文件夹,请问大神这该如何处理
问答
指定定时器或者指定路由 或者新开
进
程专门处理定时器
1一个棋牌游戏 以房间id为组 每个人的操作会重置定时器 但是由于
进
程
数
量 新的定时器
进
程问题 下一次人的操作不能删除到这个定时器 定时器继续执行,看了许多大佬的帖子 好像是路由绑定 指定
进
程设置定时器还有新开worker做计时器处理 用
进
程间通信做 但是有几个疑惑的点请教下大佬 1:业务在onmessage里面
进
行的 设置定时器在worker->id=0的上面执行 但是该操作
进
程不是在0上怎么能删除该
进
程上的计时器呢 比如其它人不在这个
进
程上 2,设置路由 workerstart的时候可以重新设置路由吗 生成房间的人的路由信息绑定到房间里 加入房间的人路由重绑定到该
进
程上3做 channel
进
程通信 新开的
进
程能用gatewaay直接
发
给前面业务的bsworker吗 如果可以的的话 能否有个大佬给个重绑定路由
进
程 或者 新开
进
程的列子 谢谢
问答
workerman 在windows 中达到256上限
大佬们,请问下,workerman 是长连接,为什么一个网页中js
发
送
指令时,client_id 每次都不一样,这个是说明每次
发
送
指令都在生成新的客户端链接嘛?5秒定时
发
送
指令,过不多会儿就达到256上限了,页面就链接不上服务了 请问下,每次
发
送
指令, Gateway::closeClient($client_id); 都要用,这样的函
数
来关闭链接嘛?
问答
在一台服务器上能不能启动多个
GatewayWorker
不是多个项目
在一台服务器上 能不能启多个
GatewayWorker
因为以前的项目比较稳定 新项目走的都是tcp 能不能再同一台linux服务器上 启动多个
GatewayWorker
而不互相干扰 目前我已经启动2个
GatewayWorker
并且把所有端口号都改了 但是内部通讯 Gateway::sendToClient(xx, xxx); 通不了是个什么情况
问答
进
程status是busy,按官方流程处理,还是没头绪
# 问题
进
程status是busy,如下图 !www.workerman.net/upload/20200511/115eb916a57224.png) 通过官方的处理流程,查看了strace -ttp 8685,并kill -SIGALRM 8685,
发
现
进
程卡在这里[截图](//www.workerman.net/upload/20200511/115eb9171bd509.png) 按照官方流程,
进
行了lsof -nPp 8685,
发
现fd=5是 !/20200511/115eb917581111.png) 6379是redis端口; 到这里之后,看了程序,程序里面有个简单的读操作,查了redis,并没有出现异常,我还有什么地方没有排查吗,目前
进
程一直处于
« 上一页
1
...
153
154
155
156
157
158
159
160
...
431
下一页 »
« 上一页
156
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝