workerman
首页
问答
分享
手册
市场
商业
客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
AI助手
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
workerman对不间断TCP
数
据
流的高效处理
一个客户端通过Socket tcp协议连接到workerman后,源源不断的向服务器传输
数
据
,
数
据
用#号标识该条
数
据
开始,用-号分割
数
据
项,用!号标识该条
数
据
结束。没有包边界,因为
数
据
较小,每次接受到很多条
数
据
,通过onMessage打印出来看,如下,怎么才能将每条
数
据
的第三列取出来,并且不丢
数
据
呢?
数
据
样列: ```log #558-A365485-954569-854121! #558-B785485-521459--! #558-A856915-556214-854121!……………… ``` 每次触
发
onMessage的时候可以echo到接受的
数
据
条
数
不一样,但是格式都如上,怎样可以高效的将每条
数
据
第三项
数
字取出来,最好能存变量,广播给用户组。```php // 远程websocket服务器
发
来消息时 $ws_connection->onMessage = function($connection, $data){ //echo "recv
问答
web-msg-sender最大连接
数
我用的web-msg-sender作为消息推
送
,搭建的聊天室,但是现在
发
现连接
数
大于1000之后,消息就推
送
不出去了,是怎么回事呢?还有怎么改成多
进
程呢?内核已经优化,端口复用以及
进
程打开文件
数
已经设置。
问答
webman可以动态的链接
数
据
库吗
#### 问题描述 webman可以动态的链接
数
据
库吗,我们的业务是每个客户都是一个单独的
数
据
库,我们要批量对每个企业做个
数
据
库业务处理,每个企业都需要单独链接到自己的
数
据
库上。能不能就是动态的来链接
数
据
库,
进
行操作处理。 #### 为此你搜索到了哪些方案及不适用的原因 我看到webman的
数
据
库是读取
数
据
库配置文件来链接不同的
数
据
同。
问答
redis队列中循环添加异步队列
数
据
丢失
#### 问题描述 用户提交了一万条左右的
数
据
更新操作,用了一个A异步队列将
数
据
放
进
去,在A队列中,将一万条
数
据
循环放入B异步队列,奇怪的事情
发
生了,B异步可能只有几十条任务,死活这一万条
数
据
加不
进
B尝试去掉A队列,直接循环将一万条
数
据
丢入B队列,结果成功了。'db' => 2, //
数
据
库 'prefix' => '', // key 前缀 'max_attempts=> [ 'handler' => Webman\RedisQueue\Process\Consumer::class, 'count' => 1, // 可以设置多
进
程同时消费keywords'] as $key=>$keyword) { // 队列名 $queue = 'zhishu-queue'; //
数
据
问答
使用wokerman开了10个
进
程,for循环使用AsyncTcpConnection
进
行连接
发
送
数
据
为什么只
发
送
了3-4条
数
据
呢?求大佬给解答下
 
问答
请问LiveCamera怎么创建多个视频接收和
发
送
窗口
请问LiveCamera怎么创建多个视频接收和
发
送
窗口 如:用户A、B访问camera.html index.html 则这两个人单独
进
行视频, 用户C、D访问camera1.html index1.html也单独
进
行视频,与上面的
进
程互不干扰。
问答
调用Gateway::sendToUid方法业务代码里不成功但在队列里面可以
发
送
#### 同样的方法放不同位置结果就不一样 有个业务逻辑就是在用户下订单后createOrder接口里面调用了Gateway::sendToUid推
送
一条消息到客户端如下代码: ``` \
GatewayWorker
\Lib\Gateway::sendToUid($info['uid'], json_encode($order_message)); ``` 没有推
送
成功,没有报错 客户端也在线, 随后将这个消息推
送
到队列里面\think\Queue::push($job_handler_classname, $order_message, $job_queue_name); ``` 然后在队列里面又执行了: ``` \
GatewayWorker
\Lib\Gateway::sendToUid($info['uid'], json_encode($order_message)); ``` 却可以推
送
到客户端 执行这两个推
送
方法时 客户端都在线 绑定关系了并且客户端ID都一样 不知道问题出在了哪里 打印\
GatewayWorker
\Lib\Gateway::$registerAddress注册端口号也都一样
问答
GatewayWorker
的单个用户并行同时
发
送
很多信息有问题吗
比如用户aaa的客户端并行同时
发
几十条或更多信息到服务器,服务器处理完通知客户端 这样会有粘包之类的情况吗? 是否有必要做成队列
发
送
呢
问答
GatewayWorker
怎么使用redis
进
行存储聊天信息
GatewayWorker
怎么使用redis
进
行存储聊天信息 在Event.php文件中怎么引入的,怎么用的呢?求大神指点下
问答
channel组件高频收
发
会出现大量send_fail
进
程A订阅A事件,
进
程B订阅B事件,客户端定时
发
消息给
进
程A,
进
程A
发
布B事件,
进
程B收到B事件再
发
布A事件。现在客户端
数
量和
发
送
频率高了以后,用status看channel_server,
进
程B
发
布A事件时会出现大量send_fail
问答
webman控
制
器调用ws客户端,
发
送
数
据
是正确的,接收服务器
数
据
每次接收的是2次
数
据
```php <?php namespace app\controller; use support\Request; use Workerman\Connection\AsyncTcpConnection; class Cabinet { // public function __construct() { global $con; global $cmdindex; $con = new AsyncTcpConnection('tcp://127.0.0.1:8282'); $con->onConnect = function(AsyncTcpConnection $con) { //$con->send('hello'); }; $con->onMessage = function(AsyncTcpConnection $con, $data) { //双倍接收 echo $data; //$con->send($data); }; $con->connect(); } // public function hello(Request $request) { global $con; $default_name = 'webman'; ```
问答
如何在onMessage()里面将用户
发
过来的信息写入
数
据
库(mysql)中?
$db=new Workerman\MySQL\Connection('localhost','3306','root','','liao'); } ``` 这个时候,想在onMessage()里面将
数
据
写入
数
据
库登录127.0.0.1:55151根
据
系统随机分配的用户名
进
行聊天,聊天内容显示在客户端,但是没有
数
据
写入mysql,这是为什么?有没有人帮忙看一下。
问答
其他项目通过workerman与硬件通信问题
最近做了一个项目,需要与很多硬件保持长连接,特定条件下需要与单独的硬件
进
行通讯互相接受
发
送
数
据
,不仅是推
送
数
据
,其他项目也需要获取到
数
据
问答
GatewayWorker
不通过Events::onMessage,如何做socket实时双向通信
比如对GPRS通过Gateway::sendToClient
进
行了下
发
数
据
后,想hold这个连接通道实时等待
数
据
反馈,因为后续的逻辑,都得根
据
这个反馈结果来
进
行下一步操作,是不是只能通过Events::onMessage
进
行处理?
问答
GatewayWorker
在windows下,压力测试并
发
时的问题...
问题是这样的: 在windows下,使用
GatewayWorker
,使用的是websocket,客户端使用浏览器模拟500个连接。然后
发
现,在我的电脑上,前251个连接正常,在252个就连不上了。跟踪代码后
发
现,在gateway的代码中: ```php $gateway->onConnect = function($connection) { //第252个连接,可以执行到这里。connection->onWebSocketConnect = function($connection , $http_header) { //第252个连接,这里没有执行,即没有
进
入到这个方法里面
问答
数
据
库插入
数
据
的问题
插入
数
据
是有没有参
数
能够设置忽略不存在的字段和不为空字段默认填充的功能(int填0,字符串填'')
问答
接收大
数
据
包
使用gatewaywork接收大
数
据
包,
数
据
包被分为多个切片,如何确定
数
据
已经接收完
问答
使用workerman做一个爬虫服务器网站,
进
行
数
据
获取
#### 问题描述 想做一个爬虫服务器,提交网页url,然后后台调用selenium浏览器
进
行浏览,浏览完成返回渲染好的网页,以及Cookie,header等信息,要怎么设计这样的网站架构使用workerman太多网站
进
行动态渲染了,而且本地写selenium挺麻烦,而且某些网站有地市限
制
,所以想做成一个服务统一调取,方便公司对子公司的业务
进
行搜集 我该怎么设计这种网站呢?
问答
worker
进
程
数
设置
workerman模型中,如果由于worker
进
程
数
设置不够,可能会导致新来的请求无法及时处理吗?会
发
生什么情况?(不讨论AsyncTcpConnection那种方案)主要是想了解会有queue吗?因为有时候worker可能只是某一时会不够,大多
数
时没问题,设置太大不好。
问答
webman-admin普通管理员添加
数
据
无法自动生成admin_id
#### 问题描述 webman-admin普通管理员添加限
制
为auth
数
据
时无法自动生成admin_id,看Crud.php中代码好像必须要前台传admin_id参
数
过来,不能自动获取当前管理员IDin_array($admin_id, Auth::getScopeAdminIds(true))) { throw new BusinessException('无
数
据
权限dataLimitField] = admin_id(); } return $data; } ``` #### 重现问题的步骤 1、添加普通管理员 2、普通管理员登录添加限
制
为auth的
数
据
提示缺少admin_id #### 操作系统环境及workerman/webman等具体版本 windows10 Workerman version:4.1.15
« 上一页
1
...
48
49
50
51
52
53
54
55
...
429
下一页 »
« 上一页
51
下一页 »
赞助商
+成为赞助商
×
请作者喝咖啡
×
🔝