workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
webman插件
不
忽略composer.lock提交,服
务
端重新composer install 导致提交插件配置(修改过)的文件又重新
生
成了
webman-framework v1.2.7 - webman/console v1.0.7 ## 本地安装 ```php composer require tinywan/jwt ``` ## 提交到服
务
端[截图](/upload/img/20220302/02621f6bcde00f.png) ## 服
务
端拉取安装 ```php git pull composer install ``` 结果又
生
成一个`config/plugin/tinywan/jwt/app.php` 导致提交的被提交,而且新
生
成的没有被提交版本库,导致下次手动拉取或者Jenkins自动构建没法接续pull代码(git pull[截图](/upload/img/20220302/02621f6c684569.png) ## 问题 是否可以 `composer install`安装的时候自动判断已经存在就
不
要再次覆盖配置文件了
问答
我在tp6.0上安装了Workerman,在GatewayWorker原
生
框架开启服
务
,但是在tp上通过websocket协议去连接这个GatewayWorker开启的进程连接
不
到
close(); // }; // 执行异步连接 $task_connection->connect(); } ``` GatewayWorker上开启服
务
的代码public function onMessage($connection, $data) { //处理异步任
务
// $task_data = json_decodepublic function onClose($connection) { } //当客户端的连接上发
生
错误时触发。onClose = array($task, 'onClose'); $task_worker->onError = array($task, 'onError'); // 如果
不
是在根目录启动defined('GLOBAL_START')) { Worker::runAll(); } ``` 进程是可以正常开启的,但是在tp上就是连接
不
到
问答
使用shopwwi/webman-auth 多表认证获取
不
到指定表的用户信息
[截图](/upload/img/20220613/1362a709567eac.png) ## 定义了两个类,这个获取
不
到用户信息  ## 在指定creator守卫时,redis中存储的键有问题,在第一次登录时
生
成了user_3,用这个token获取用户信息提示令牌无
效
,再次登录
生
成才
生
成creator_3
生
效
,如下图所示 !
问答
ai 微信支付手机二维码显示
不
全,导致无法识别
不
知道你们有没有遇到,微信支付在手机上二维码会显示
滚
动条,遮挡住导致
不
显示完整的二维码, 截图后扫码识别
不
出来 !
分享
php
生
成器详解 Generator以及yield到底是什么?
它最简单的调用形式看起来像一个return申明,
不
同之处在于普通return会返
回
值并终止函数的执行, 而yield会返
回
一个值给循环调用此
生
成器的代码并且只是暂停执行
生
成器函数。public __wakeup(): void } //测试方法 function countTo4() { yield from [1, 2, 3]; yield 4; } //获得
生
成器的返
回
print_r($data->valid()); 如果打开注释行 //$data->next();迭代器就会失
效
,获取元素失败 ``` 注意:从php的源代码来看,yield只是标记方法为
生
成器,具体实现还是在zend vm里面处理 ### yield 异步,协程的关系 因为
生
成器是一个很好的接受返
回
数据的方法,
不
然很容易内存溢出,经常配合一些异步,协程执行获取返
回
结果,但是yield本身是和异步,协程并没有什么关系这种相对
不
常见的情况是通过在产
生
控制时将活动调用帧复制到
生
成器结构中,并在
生
成器恢复时恢复它们来处理的。 此设计自PHP7.1开始使用。
问答
wss部分地区可以链接,部分地区链接
不
上
wss(在GatewayWorker中websocket使用证书)部分地区可以链接,部分地区链接
不
上,请问是怎么
回
事
呀? 证书的问题吗? 服
务
器在国外。 请问大佬们这个有什么好的解决方案吗?
问答
怎么set sql_mode?
options` ```php 'options' => [ \PDO::ATTR_TIMEOUT => 3, //
不
生
效
\PDO::MYSQL_ATTR_INIT_COMMAND => "SET sql_mode=''", ] ``` 发现并
不
生
效
, 又尝试修改`support/bootstrap.php`,添加: ```php Db::statement("SET sql_mode=''"); ``` 刚启动是
生
效
的,可是过了一会儿又失
效
了, 请问一下要在哪里配置
问答
symfony/translation 包无
效
(已解决)
#### bug描述 symfony/translation语言包无
效
#### 程序代码或配置 composer ``` composer "symfony/translation": "^5.4控制器代码 ``` locale('en'); $hello = trans('hello'); return response($hello); ``` #### 期待的结果及实际结果 实际结果
不
管怎么切换语言trans('hello') 返
回
的都是hello #### 解决 语言包文件名称错误应该是 messages.php
问答
workerman 如何提高Redis出队
效
率?
当前正式环境每天会通过API接口有几百条数据
不
同的时间段提交至服
务
端,服
务
端利用Redis队列入队、出队,数据校验后进行入库; 通过服
务
器自身的任
务
计划,每10分钟执行一次PHP脚本,来对Redis的数据进行出队->校验->入库; 目前暂时没有问题;但是无法应对大量数据入队后的出队
效
率?如果Redis队列里有10000条或者更大量的数据; 通过PHP脚本 可能需要 10分钟以上的时间左右才能完成入库; Workerman 如何对这个问题进行相关优化 提高
效
率呢?
问答
workerman mqtt 组件 用composer下载
不
了
我下载 mysql 组件都可以,mqtt 组件就
不
行了。 是怎么
回
事
呀
问答
我这边发现一个问题,配置里gateway-worker端口1236设置为了12360,并
不
会完全
生
效
#### 问题描述 我这边发现一个问题,我把配置里gateway-worker端口1236设置为了12360,启动这些都正常,但是在我使用gateway发送消息时,仍然调用的是1236这个端口,导致
不
断报错是否是长链接 * @var bool */ public static $persistentConnection = true; ``` #### 重现问题的步骤 情况发
生
在我调用了
事
实上我早就在配置里把端口改为了12360 #### 操作系统环境及workerman/webman等具体版本 使用的webman官方最新版本,在webman里安装的gateway-worker
问答
webman基础插件
不
支持注册路由吗?
[截图](/upload/img/20240422/2266260bcd2f54.png) ### 似乎这样注册并
不
生
效
呀?我打印了,运行也没出现任何打印的提示> 似乎这样注册并
不
生
效
呀?
问答
workerman返
回
数据
不
对
workerman有时连上返
回
的数据
不
对,好像是之前改过的版本 !
问答
我在onconnect的时候订阅个
事
件 但是总有connection会收
不
到
aaaaaa', function($multi_data)use($connection){ $connection->send('订阅的aaa
事
件'); }); $connection->send(‘111111111处订阅的
事
件’); }); }; ``` 在onstart中 给每个connection订阅$key
事
件 $key中是唯一的 在以后中在222222处订阅群发aaaaa
事
件 但是每次只有最后一个连接可以接受到aaaaaa
事
件 为什么
问答
workerman的异步http-client怎么在onMessage
回
调中
不
生
效
,浏览器无限刷新
代码如下: ```php <?php use Workerman\Worker; use Workerman\Connection\TcpConnection; use Workerman\Protocols\Http\Request; require_once __DIR__ . '/vendor/autoload.php'; $worker = new Worker('http://0.0.0.0:9898'); $worker->onWorkerStart = function() { global $http_client; $http_client = new Workerman\Http\Client(); }; $worker->onMessage = function(TcpConnection $connection, Request $request) { global $http_client; $http_client->get('https://www.baidu.com', function (\Psr\Http\Message\ResponseInterface $response) use($connection){ $message = $response->getBody()->__toString(); $connection->send($message); }, function ($exception) { echo $exception; }); }; // 运行worker Worker::runAll(); ```
问答
onWebSocketConnect 无
效
3.0.9 本版 实测 onWebSocketConnect 无
效
 打印有数据!20230425/2564476cc9ef65.png) Events.php onWebSocketConnect 无法获取 onConnect 与 onWebSocketConnect
不
能同时使用
问答
gateway使用负载均衡后出现返
回
403问题
gateway使用负载均衡后,前台发起长连接时第一次正常,但是刷新页面重新连接时就会出现返
回
403现象,连接
效
果时好时坏,把负载均衡指向一个节点访问时就
不
会出现这种问题。配置: 一共两个节点,有一台启动了register服
务
,另一台没有启动register,每个节点都配置了内网ip 现在是负载如果单独指向有register服
务
的那个访问是没有问题的,如果分发就会出现刷新
问答
[已解決]webman多进程导致mysql死锁
使用的是 "illuminate/database": "^9.3" 最近业
务
上线,发现经常产
生
死锁。隔三差五的就会导致mysql死锁,通过KILL把死锁的KILL了也没用,后续继续执行
事
务
也会导致死锁。 解决方式是只能php start.php reload 然後就正常了。1 當
事
務1 進行
回
滾,
事
務2和
事
務3 此時能獲取S鎖,檢查重複值之後執行插入申請X鎖,但由於
事
務2和3都已經獲取了S鎖,所以導致X鎖獲取失敗兩個
事
務進入死鎖狀態。## 解決方式 增加多一個接口,專門處理價格檢測,
不
通過
事
務
回
滾來進行。 ## 彎路 我也是第一次遇見這個問題,最終還是通過百度和對mysql的error log還原了整個
事
件。自己的
不
足在於太過先入為主,總覺得是update導致的死鎖,哪知道是特定環境下insert導致的死鎖。
问答
为什么关闭closeClient后
不
触发websocket的onclose
事
件啊
而是触发了 onmessage
事
件
问答
求助:一个tcp服
务
器,一个http服
务
器,
不
能一起启动,首先启动的会阻塞后面启动的服
务
器的消息处理,咋
回
事
?
首先启动的会阻塞后面启动的,看状态第二个服
务
器是启动了,但处理
不
了消息 libevent 也安装了,php 安装的是 event 扩展 Workerman 启动: 2019-12-20 18:08:23:674114 : 在 0.0.0.0:11001 上创建 Channel 服
务
器。服
务
器 http://0.0.0.0:11000 1 [OK] tcp song 设备服
务
器 tcpStart success. 2019-12-20 18:08:23:940987 : 在 0.0.0.0:11000 上创建 业
务
Web服
务
器 。^CWorkerman[server.php] stopping ... 2019-12-20 18:08:25:707329 : 0.0.0.0:11000 上的 业
务
Web服
务
器 停止。
« 上一页
1
...
10
11
12
13
14
15
16
17
...
462
下一页 »
« 上一页
13
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝