我正在实现http2协议,握手方式目前大多数客户端都是ssl协商上层协议,也就是告诉客户端服务器支持h2 在监听的时候要加以下设置 stream_context_set_option($this->_context, "ssl", "alpn_protocols", "h2, http/1.1"); 目前我直接改的worker类,在里面添加这个参数,但...
https://www.workerman.net/doc/webman/components/arms.html 文档中为了做统计,其实是用了分布式链路追踪最简单的实践,这几天我在想,都做到这一步了其实还可以做更多,比如链路中加入redis , mysql, function, rpc, httprequest的链路,形成完整的链路追踪。在中间件或者方法的前置和后置方法切入从而实现针对方法的统计,或者使用插件...
按照官网配置redis,运行一段时间后出现链接断开问题, Next RedisException: Connection closed in /abc/vendor/illuminate/redis/Connections/PhpRedisConnection.php:406 出现此问题,我测试会在两种情况下出现 <?php #default_socket_timeout为默认值60 #第一种 $rds...
这里用docker来跑webman https://www.workerman.net/doc/webman#/install?id=docker%e7%8e%af%e5%a2%83 我想问问 关于linux 系统调优 http://doc.workerman.net/appendices/kernel-optimization.html 这个是在docker容器里面配置还是在宿主机上面修改配置?...
老问题如下 https://wenda.workerman.net/question/6111 ps auxf 发现进程还存在 strace -ttp 8764 root@hecs-x-xlarge-2-linux-20200821114232:~# strace -ttp 8764 strace: Process 8764 attached 10:08:04.904878 wait4(-1, 0x7ffe68cc...
问题如下 早上起来上班,发现访问不了,发现8787端口已经没有监听。 但是php start.php status 如上图。 自定义的其他进程也已经不存在了。 重启后恢复正常访问。 正常情况如下 请问各位有没有遇到这样的问题,有可能是什么地方的问题。...
webman的路由建议写的全一点,比如分组功能就要自己去继承Route再扩展FastRoute的分组功能...
webman的支付文档里面推荐的支付 https://www.workerman.net/doc/webman#/components/pay yansongda/pay 对传统fpm才合适可用,特别是输出响应这一块 还是我没有理解到?我看源码它的响应是直接echo ,设置header也是header函数做的,和workerman 不兼容。 Symfony\Component\HttpFoundation\Resp...
class CrossDomain implements MiddlewareInterface { public function process(Request $request, callable $next): Response { // 如果是options请求,不处理业务 if ($request->method() == 'OPTIONS') { ...
~~ webman中 $request->getRemoteIp()取的是真实tcp连接 ip 如有代理 nginx 就不友好,不管头怎么设置真实ip都是nginx的真实ip 自己实现获取用户ip虽不难,但是,建议加入到 request 类里面 $request->header('X-Real-IP')~~...
最近在看webman的源码,我是用的 php-di容器。composer.json的自动加载机制并没有包含目录下的app目录,app目录下的controller 是在App类里面include,代码如下 public static function loadController($path) { foreach (\glob($path . '/controller/*.php') as $fil...
https://www.workerman.net/doc/webman#/process?id=%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e8%af%b4%e6%98%8e 这里缺少一个配置services ,文档里面没有,这是看意思是想做进程内再开一个端口监听 不然start.php中 如下代码不会起作用 foreach ($config['services'] ?? [] as ...
大家认为workerman有必要在程序中创建数据库连接池吗? 我认为workerman没必要 ,做一个断线重连即可。因为不是多线程,或协程,所以一个进程中从请求来临到请求结束都用一个数据库连接,下一个请求来临只要这个链接还有效还可以接续用,线程不会随着请求的结束而结束,连接池创建多个数据库连接只能是浪费。 php-fmp 更没有必要在程序中做连接池,因为不但一个请求是从上到下都不会有其他请求干扰(协程),也没...
thrift-rpc 有什么优势?传输二进制更省带宽?各种语言通用性? 如果我用json-rpc来实现不是更好吗? json在各种语言都通用, 如果我传输的时候压缩一下,接收后解压一下带宽也很节约, 而且thrift 没有传统的json更易读,复杂的也更高。 求各位驳斥我的看法。...
异步tcp我认为的是,tcp请求会做到异步化,tcp发起请求后,程序自己可以处理其他业务,tcp有结果了就执行回调函数,但是通过我的实验并不是。不知道是我代码有问题还是怎么回事,求解答。 $task = new Worker(); $task->onWorkerStart = function ($task) { $connection_to_baidu = new AsyncTcpConnection('...
为什么定时器类 Timer 里面有一些 pcntl_alarm的函数,我不明白为什么要用这些函数,workerman的定时器我看并不依赖于pcntl_alarm,是用libevent扩展或者event扩展 或者超时来实现的毫秒级的定时器。 public static function signalHandle() { if (!self::$_event) { \pcntl_alarm(1...