workerman
首页
问答
分享
手册
市场
物联网
webman
AI助手
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
使用workerman做一个爬虫服
务
器网站,进行数据获取
#### 问题描述 想做一个爬虫服
务
器,提交网页url,然后后台调用selenium浏览器进行浏览,浏览完成返
回
渲染好的网页,以及Cookie,header等信息,要怎么设计这样的网站架构使用workerman太多网站进行动态渲染了,而且本地写selenium挺麻烦,而且某些网站有地市限制,所以想做成一个服
务
统一调取,方便公司对子公司的业
务
进行搜集 我该怎么设计这种网站呢?
问答
内网穿透折腾半天(是我服
务
器配置比较复杂)【已解决】
#### 问题描述 买了官方的内网穿透功能,由于我服
务
器架构比较复杂,所以出现了许多问题。首先是反向代理机器,转发到 业
务
机器,业
务
机器里面又是docker 搭到环境,php一个容器,nginx 一个容器。最终结果就是, ``` 2023-10-06 16:56:37 内网穿透服
务
端:接受内网配置下发客户端连接 Ip:172.18.0.6:50814 object(Workerman\Connection> 'setting', 'setting' => $items], JSON_UNESCAPED_UNICODE)); ; ``` 可我本地的nat-client 收
不
到下发的消息实在是折腾太久, 请各位大佬给点思路,怎调试 #### 解决方案 泛解析没
生
效
。折腾半天,哎。其他配置没问题。
分享
高速共享缓存插件分享
整体项目分为配置服
务
、http-api服
务
、websocket服
务
三大部分,其中配置管理主要是兼容客户端
生
成的配置数据进行导入导出转换加载,底层使用MySQL进行储存,多服
务
间使用Redis进行一级缓存后续我们的目标锁定在了共享内存上,因为共享内存可以轻易的在进程间进行通讯交换,而且
不
存在深拷贝和网络等问题,
效
率、性能非常的高,整体微秒级别的响应满足我们的需求;于是我基于PHP的拓展APCu封装了适合我们业
务
场景的插件包进行使用# webman-shared-cache 我们的基础应用实现了定时器来从MySQL数据库读取配置信息,定时器的处理器也在读取数据刷入Redis的同时触发共享内存的更新
事
件,上层业
务
通过更新
事
件的
回
调出发会将的操作,为了业
务
的原子性,我们希望这多次的操作要在一个原子性内完成,所以需要一个锁来进行隔离,以免在多进程的环境下被其他进程的操作污染,整体是类似MySQl的
事
务
的: ```php protected- 默认储存空间和子通道储存空间是互斥的,也就是说当存在子通道储存空间时,是
不
存在--default--的,反之亦然;子通道储存空间是当当前通道存在监听器时
生
成的,而在监听器产
生
前,消息会暂存在--default
问答
Gateway 在触发onClose的
回
调时,无法获取session的数据.[已解决]
能否在调用完onClose
回
调时候再清理session的数据呢.
问答
webman 怎么实现 接口返
回
文件内容马上要完成的时候 然后执行某个函数
#### 问题描述 webman 怎么实现 接口返
回
文件内容马上要完成的时候 然后执行某个函数 比如我有个接口 返
回
文件内容 return response()->download( 怎样可以实现 返
回
文件内容马上要完成的时候
问答
心跳监测
不
起作用,哪位大佬帮我分析一下是哪里的问题?
gateway->count=4,起始端口为4000 // 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口 $gateway->startPort = 2900; // 服
务
注册地址172.21.0.9:1238'; // 心跳间隔 $gateway->pingInterval = 10; /* 客户端连续$pingNotResponseLimit次$pingInterval时间内
不
回
应心跳则断开链接*/ $gateway->pingNotResponseLimit = 1; /* 代表服
务
端
不
发送任何心跳数据,但是客户端如果 pingInterval*pingNotResponseLimit=20想实现客户端每隔10秒请求一次服
务
器,否则断开该链接。
问答
status获取
不
到信息
php artisan workman status 返
回
Workerman[artisan workman] not run 但我workerman是开着的,能正常链接 现在是运行了一段时间,socket就突然死了,又差
不
多原因 log提示SendBufferToWorker fail.
文档
优化Linux内核
net.netfilter.nf_conntrack_max = 2621440 net.ipv4.ip_local_port_range = 10240 65000 ``` 运行 `sysctl -p` 即刻
生
效
如果开启4个进程维持用户连接,那么整个应用能够同时维持的连接数
不
会超过4*1024个,也就是说最多只能支持4x1024个用户在线可以增大这个设置以便服
务
能够维持更多的TCP连接。这只是在当前终端有
效
,退出之后,open files 又变为默认值。第三种:令修改open files的数值永久
生
效
,则必须修改配置文件:`/etc/security/limits.conf`.nofile 1024000 * hard nofile 1024000 root soft nofile 1024000 root hard nofile 1024000 ``` 这种方法需要重启服
务
器才能
生
效
问答
crontab定时任
务
写了一个定时任
务
每天0:10:00 执行 但是每天都会重复执行两次,请问大神们这个问题有没有遇到得,这个与服
务
器的时区什么的有关系吗,还是其他的什么原因 是同一时间执行了两次,
不
是多次 定时任
务
!
问答
web登录怎么后台怎么保存验证码
web登录后台
生
成验证码图片返
回
给前端用什么保存文本验证码用于之后对前台输入的验证码进行判断。是用$_SESSION吗? workerman的$_SESSION,web能用吗
问答
开发环境数据表新增字段,怎样在
生
成环境更新,有没有好用的工具或者方法推荐一下给小弟
#### 问题描述 开发环境数据表新增字段,怎样在
生
成环境更新,有没有好用的工具或者方法推荐一下给小弟
文档
bindUid
2、但是一个client_id只能绑定一个uid,如果绑定多次uid,则只有最后一次绑定有
效
。2、如果业
务
需要一对一的关系,可以通过```Gateway::getClientIdByUid($uid)```获得某uid已经绑定的所有client_id,然后调用```closeClient($client_id4、如果某个uid对应的所有client_id都下线了,则调用```Gateway::isUidOnline($uid)```将返
回
0,即uid
不
在线。例如客户端连上服
务
端后,发送的第一个数据包应当包含客户端的鉴权信息(例如用户名密码或者可用于鉴权的token),服
务
端通过鉴权信息确定该连接属于哪个uid,然后调用```Gateway::bindUid### 返
回
值 无返
回
值 ## 范例 ```php use \GatewayWorker\Lib\Gateway; class Events { ...
问答
请问workerman 支持 html5 的sse吗?
我想使用使用workerman实现服
务
器端推送,请问支持html5 的server send event吗? 我发现这么写似乎无
效
,求解答? ```php <?// 创建一个Worker监听2345端口,使用http协议通讯 $http_worker = new Worker("http://0.0.0.0:2345"); // 启动4个进程对外提供服
务
$http_worker->count = 4; // 接收到浏览器发送的数据时
回
复hello world给浏览器 $http_worker->onMessage = function($connection
问答
thinkphp5.1如何修改入口文件,让它在workerman4.X中运行http服
务
/thinkphp/base.php'; // 支持
事
先使用静态方法设置Request对象和Config对象 // 执行应用并响应 $app=Container::get('app')->run()
问答
大佬 workerman推送一直返
回
fail
data; // 通过workerman,向uid的页面推送数据 $ret = sendMessageByUid($uid, $buffer); // 返
回
推送结果inner_text_worker->listen(); }; // 新增加一个属性,用来保存uid到connection的映射 $worker->uidConnections = array(); // 当有客户端发来消息时执行的
回
调函数
问答
请教, 我有100多个ssl证书, 而且数量会变化, 作为https服
务
端怎么根据每个请求的域名
不
同, 使用
不
同的证书呢?
能否在 TcpConnection 的 stream_socket_enable_crypto 之前, 提供一个 beforeSslHandshake
回
调方法来修改 socket 的 contentx
问答
webman的session销毁前如何触发自定义
事
件
在业
务
逻辑中,有部分“脏数据”是保存在session中的,能否在session到期销毁前,调用自定义的方法,做一些处理呢?
文档
Crontab定时任
务
# crontab定时任
务
组件 ## workerman/crontab ### 说明 `workerman/crontab`类似linux的crontab,
不
同的是`workerman/crontab'task' => [ 'handler' => process\Task::class ], ]; ``` **步骤三:重启webman** > 注意:定时任
务
不
会马上执行,所有定时任
务
进入下一分钟才会开始计时执行 ### 说明 crontab并
不
是异步的,例如一个task进程里设置了A和B两个定时器,都是每秒执行一次任
务
,但是A任
务
耗时10秒,那么B需要等待A执行完才能被执行如果业
务
对于时间间隔很敏感,需要将敏感的定时任
务
放到单独的进程去运行,防止被其它定时任
务
影响。`process/Task1.php` 里,其它定时任
务
放在 `process/Task2.php` 里 ### 更多 更多`config/process.php`配置说明,请参考 [自定义进程](
问答
workerman如何主动关闭服
务
?然后继续执行Worker::runAll();后面的代码,比
不
上swoole的地方
workerman只管开启,
不
管关闭,管杀
不
管埋,结果因为业
务
需求只能无奈转向swoole。而swoole都可以自由控制: 作为http服
务
端可以:Swoole\Server->shutdown() 关闭服
务
,停止监听 作为客户端可以: Swoole\Coroutine\Client->closeuse($http) { var_dump($request); if(true)$http->shutdown(); // 接收指定请求后关闭http服
务
}); $http->start(); // swoole可以实现的继续执行后面的内容 echo 'http服
务
关闭,继续执行后面的代码……'.PHP_EOL
问答
websocket服
务
如何在服
务
端加心跳功能?
我搭建了一个websocket服
务
,主要是html 5页面打开的时候会连接该websocket服
务
,我现在是pc端的浏览器打开页面然后关闭的时候,通过在服
务
端用status命令检查是没有问题的,连接数会减少,但是手机端app里面访问该html5页面,然后直接关掉app,通过服
务
端status命令显示该连接没关闭掉,都过了10多分钟还没有关掉,非常让人恼火,想请问下这种情况的话,该如何处理呢?我目前看手册里有个心跳机制,但是内容说的好像是从客户端定时向服
务
器发送点数据,然后服
务
端判断是否在间隔时间内发送了消息来判断是否要关掉,我
不
知道是否有那种在服
务
端检测连接心跳的方法,客户端没有接收到确认接受数据就把当前的连接关闭
« 上一页
1
...
67
68
69
70
71
72
73
74
...
433
下一页 »
« 上一页
70
下一页 »
赞助商
+成为赞助商
×
请作者喝咖啡
×
🔝