workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
GatewayWorker WINDOW服
务
器最大能支持多少对话 能支持上万吗 还是数量是指同
事
在线人数是吧
GatewayWorker WINDOW服
务
器最大能支持多少对话 能支持上万吗 还是数量是指同
事
在线人数是吧
问答
SM2算法 php 怎么实现
这里写问题描述 做一个数据同步 同步的返
回
数据需要 sm2算法加密 这个算法是中国的 php 没有这个算法 要自己写 人家给了个示例 示例是java的 我看了网上有几种处理 第一种是 直接调用linux 命令 返
回
结果 这个我
不
会 第二种是 自己打包扩展 这有一个 https://gitee.com/state-secret-series/openssl-ext-sm2 没研究 又怕整好了之后算出来的 又签名
不
一致 第三种是 直接安装一个 java服
务
用他们示例代码 放到一个服
务
器上面 用php 先整理好要计算的数据 curl 请求 127.0.0.1:xxx(和php再同一台机器上java服
务
) 然后java算完了 返
回
来 加密的字符串 php 返
回
nginx 返
回
浏览器 这种肯定能行(感觉
不
够
效
率,一个java太占服
务
器内存 就干这点
事
) 有没有 做过 sm2 算法
问答
workerman 配置文件reload的问题
现在想用workerman实现一个后台服
务
,启动的时候主进程会解析一个配置文件,里面有一些upstream配置是所有worker共享的,所以在启动的时候会放入到共享内存中。现在的问题是,在reload的时候主进程没有相应的
回
调接口,那worker怎么加载新的配置,如果放到worker的onWorkerReload
回
调,那upstream会被写到共享内存N次,
不
知道有没有其它办法比如能
不
能让register_shutdown_function()
不
对worker
生
效
问答
我在wokerman里新增了异步任
务
处理,能否提交合并
[截图](//www.workerman.net/upload/20200321/215e75b8dc5505.png)执行
效
果 增加了以下内容,参照的swoole /** 异步任
务
task方法时触发 * @var callable */ public $onTask = null; /** 异步任
务
进程数 大于0时创建异步进程 * @varint */ public $task_worker_num = 0; /** 异步进程端口
不
指定时以当主服
务
端口+100 * @var int *//**
不
设置默认使用 onWorkerStart * @var callable */ public $onTaskWorkerStart = null;return bool|int 失败false 成功 返
回
任
务
进程id */ public function task($data){}
问答
Medoo数据更新有概率会无
效
#### Workerman使用Medoo数据库操作数据更新时 偶现/经常 失败 使用Timer定时任
务
更新数据库,奇怪的点,这个失败并
不
是报错。= '预先规定的返
回
内容'; // 假设 http 返
回
id,content字段 if($http = '正确'){ // 根据id 更新本地数据库对应content字段, 及 status- 失败' } }) } ``` 出现问题地方在于: onMessage
回
调中 `$db->update` 这里, ### 偶尔或经常在日志提示成功时,数据库相关的内容也
不
会更新 比如:日志提示成功了都没用被更新, 同样也没有报错 但是,还是会有按预期把数据完整更新的,也就是 `content` 和 `status = 1` 都更新了 这个问题无从定位是哪里的原因,使用了try catch也没有异常发
生
,想请问是Medoo的原因还是本身业
务
代码上有什么问题吗?
问答
分享一个基于workerman的rabbitmq客户端
生
产者、消费者(基于Timer实现
事
件驱动)
通过综合分析、研究和探索workerman和PhpAmqpLibr相关手册,经过长期的实践,现分享一套基于workerman的rabbitmq客户端
生
产者和消费者代码,供大家测试,使用。# rabbitmq
生
产者 rabbitmq_productor.php ```php <?php require_once ('.rabbitmq_exchange_name = "exchange_name"; $rabbitmq_queueName = "queuePrefix_QueueName"; // 连接 rabbitmq 服
务
($rabbitmq_queueName , $rabbitmq_exchange_name, $rabbitmq_queueName); //可以修改时间间隔,如果为0.002秒,则每秒产
生
500//如果这条消息处理失败,你可以在这里将其再次放
回
消息队列(最好给消息做个放
回
去的次数判断,避免无限失败和无限循环) }); //这里是重点,网上很多教程起的使用
文档
onWorkerStop
每个进程
生
命周期内都只会触发一次。 可以在这里为每一个businessWorker进程做一些清理工作,例如保存一些重要数据等。注意:某些情况将
不
会触发onWorkerStop,例如业
务
出现致命错误FatalError,或者进程被强行杀死等情况。## 参数 ``` $businessWorker ``` businessWorker进程实例 ## 返
回
值 无返
回
值,任何返
回
值都会被视为无
效
的 ## onWorkerStop范例 `
问答
如果有
效
的实时获得Gateway中的session,特别是当上万台设备连接的时候?
2.前端web通过ajax发送请求给后端,后端通过gatewayclient提取所有的或者是特定session返
回
给前端。 问题: 1.怎么比较高
效
的显示上万条session数据,分页?2.GatewayClient获得所有session的
效
率大概是怎么样的? 3.通过websock方式时,根据
不
同的端口进行
不
同的操作,
不
同的端口是可以共享session的对吗?
问答
$db连
不
上是怎么
回
事
呢?
:2121'); //新增开始 $inner_http_worker->onWorkerStart = function($inner_http_worker){ //数据库初始化,在其余地方都是服
务
使用db = new Workerman\MySQL\Connection('127.0.0.1', '3306', 'test', 'test', 'test'); }; //新增结束 //其余地方都引用
不
了
问答
【小白求助】如何在前端控制服
务
器向tcp客户端发送指令
wolker大神: 我刚开始接触workerman,想做这样一件
事
情:服
务
器与一个客户端建立TCP连接,通过另一个web终端向服
务
器发送信号,使服
务
器向TCP的客户端发送指令。敬盼
回
复
问答
workman服
务
器做成websocket 怎么让APP请求
不
同的参数调用
不
同的方法执行
workman服
务
器做成websocket 怎么让APP请求
不
同的参数调用
不
同的方法执行并返
回
给APP端,就相当于APP请求
不
同的url返
回
不
同的json一样
文档
onClose
# onClose ## 说明: ```php callback Connection::$onClose ``` 此
回
调与[Worker::$onClose](../worker/on-close.md)
回
调作用相同,区别是只针对当前连接有
效
,也就是可以针对某个连接的设置onClose
回
调。'/vendor/autoload.php'; $worker = new Worker('websocket://0.0.0.0:8484'); // 当有链接
事
件时触发 $worker->onConnectconnection) { echo "connection closed\n"; }; }; // 运行worker Worker::runAll(); ``` 上面代码与下面的
效
果相同'/vendor/autoload.php'; $worker = new Worker('websocket://0.0.0.0:8484'); // 设置所有连接的onclose
回
调 $worker
问答
定制udp协议会无
效
的问题
我需要定制一个运行于udp上的协议,尝试按照手册进行开发,发现udp端口完全收
不
到任何信息。 首先,定制一个协议文件,比如ABC。然后配置代码如下,运行无
效
: ```php $worker = new Worker('ABC://0.0.0.0:1234'); // 注意直接udp协议是有
效
的,使用自定义协议无
效
$worker->transport = 'udp'; // 使用UDP网络通讯协议 // 系统定制的协议也一样无
效
,比如TEXT,你按照手册设置如上,也一样无
效
``` 后来经过测试,如果使用udp协议,再将协议设置为自定义,是有
效
的。
分享
无聊撸了一个多进程助手组件【workbunny/process】
# [workbunny/process](https://github.com/workbunny/process) 我在做非常轻量的任
务
调度服
务
的时候刚好顺带撸了一下PHP多进程相关的内容,总共写了
不
到初始化 - Runtime对象初始化支持配置 - pre_gc :接受bool值,控制Runtime在fork行为发
生
前是否执行PHP GC;**注:Runtime默认
不
进行gc** - priority$p->isChild()){ var_dump('im parent'); # 父Runtime都
生
效
} # 或以注册
回
调函数来执行 $p->parent(function(\WorkBunny(){ var_dump('child-child'); # 由于fork作用范围为父Runtime,所以
不
生
效
}); }); $p->parent(function (\WorkBunny('parent-child'); #
生
效
}); }); # run 方法同理 ``` ## 5.
问答
webman接口,涉及到io操作连接远程mysql服
务
导致接口
效
率很低
#### 问题描述 这里写问题具体描述 webman接口,涉及到io操作连接远程mysql服
务
导致接口
效
率很低,换成本地的数据库就会快很多,但是项目数据库是单独的,怎么解决这个问题呢?
问答
原
生
php实现代理端口
代码如下,php版本7.4.28 我用原
生
代码写了一个服
务
端和一个客户端, 服
务
端是 192.168.3.66 的 3306 客户端连接的 110.242.68.4:80 ,这个就是百度网站的地址客户端作为服
务
器的代理工具,做数据转发。要达到的
效
果就是 浏览器访问192.168.3.66的3306 等于访问110.242.68.4:80 现在的情况是,如果我在命令行使用nc来访问 nc 192.168.3.66 3306 GET /HTTP/1.1 然后是有正常的返
回
的。但是如果用浏览器访问 http://192.168.3.66:3306 网页是
不
能正常展示的。
问答
(已解决)移动端api接口修改无
效
#### 问题描述 开发移动端api接口,我安装了tinywan/jwt重启webman之后,就出现了所有api接口方法怎么修改都无
效
的情况,就像使用缓存一样返
回
值始终
不
变,重启3webman第一次获取数据后又
不
会变了,我后台管理是webman/admin,我后台添加数据或者删除数据,获取的数据是有变化的,这是啥情况呢?
问答
请问用php的curl直接请求websocket服
务
吗?
今天看到项目中有人用curl直接请求用workman搭建的http服
务
器去给前端投送消息,我有点纳闷,搭建的是http服
务
器,前端怎么可能会一直连接着呢,我自己搭建了websocket服
务
,前端可以一直连接请问大神这是怎么
回
事
问答
关于主进程与子进程的
事
件监听
主进程listen 监听端口_mainSocket作为socket描述符,然后放到event里面监听 为什么子进程也要做同样的
事
件监听呢,子进程
不
继承父进程的监听
事
件吗
问答
请问下大大 有做过类似淘宝推送消息处理的案例呢?
Console.WriteLine(e.Message.Topic); Console.WriteLine(e.Message.Content); // 默认
不
抛出异常则认为消息处理成功(Exception exp) { Console.WriteLine(exp.StackTrace); e.Fail(); // 消息处理失败
回
滚
,服
务
端需要重发 } }; client.Connect( "ws://mc.api.taobao.com/" ); // 消息环境地址 ``` - 请问 如果用 workerman
« 上一页
1
...
13
14
15
16
17
18
19
20
...
459
下一页 »
« 上一页
16
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝