workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
你好,大神,用咱们的
GatewayWorker
做即时通讯并
发
问题
你好,我们用
GatewayWorker
做即时通讯的后端,用redis 做了一部分缓存,同时 消息存储到 mongodb ,业务接口 用 mysql 这块 我们做并
发
测试,
发
现 4核的服务器 每秒连接人
数
基本在 1W左右可以的,但用前端给后端每秒
发
送
数
据
发
现socket 基本上每秒只能处理 10条左右
数
据
的下
发
,前端 每秒 100条
数
据
发
数
据
,导致全部堆积到 后端 , 基本上延时 1-2给小时才能下
发
完, 到现在也不清楚原因原因 问下大神,咱们
GatewayWorker
每秒理论
数
据
下
发
至客户端在多少条?想这样的每秒100条消息,服务器没有下
发
都堆积到哪里了?
问答
自定义
进
程中
数
据
查询
数
据
库连接操时
#### 问题描述 使用webman2.1后,http服务
进
程
数
据
库操作正常,自定义
进
程中首次查询
数
据
正常,等待3分钟左右后,
数
据
库连接操时:SQLSTATE[HY000]: General error1.http服务
进
程因请求结束会调用 Context::destroy() 能正常将连接回收放入连接池,
数
据
库连接心跳正常,所以没有导致连接超时。自定义
进
程中我是用来做异步执行定时任务的,经过排查
发
现自定义
进
程中,首次查询
数
据
心跳是正常执行,定时几分钟再查询
数
据
后,从此心跳不在执行,如果在等几分钟再次查询
数
据
,没有心跳维持连接就会报
数
据
库连接操时了//等待中一直观察
数
据
库链接心跳正常触
发
//200秒执行查询一次测试 Timer::add(200, function () {//说明:在次查询会导致
数
据
库连接操时,目前暂时解决是:定时50秒执行一次 Db::query('select 1'); 或者 在该
进
程中所有查询
数
据
后执行 Context::destroy
问答
能通过websocket转
发
chatgpt的流
数
据
吗?
#### 问题描述 最近在弄chatgpt,前端通过websocket
发
送
消息,后端Gateworker的Events.php里通过workerman的HttpClient请求chatgpt的聊天接口,返回
数
据
发
送
到前端。现在想实现打字机效果,能通过websocket转
发
这些
数
据
到前端吗?
问答
web服务器 http协议
发
送
几M
数
据
客户端接受不完整
最近开
发
过程中,接口调试时
发
现客户端收到的
数
据
总是不完整,追踪代码
发
现在TcpConnection.php中 $len = @fwrite($this->_socket, $send_buffer, 8192); socket最大
发
送
8192字节,超出的部分就丢掉不
发
了,有什么办法修改吗?
问答
Workerman重启后客户端
发
送
心跳服务端报错
服务端是Workerman+
GatewayWorker
架设 客户端是采用C#开
发
的。 当服务端断开后,客户端也断开连接了。 当服务端重新启动后,客户端也重新连接上服务端了。然后
发
送
心跳包
数
据
。但有时会出现客户端
发
送
的心跳包
数
据
,服务端也有收到信息。但是使用$data=Gateway::getUidByClientId($client_id); 来获取对应连接绑定的
数
据
时,会报Invalid argument supplied for foreach
问答
GatewayWorker
多端口 在控
制
器中只能获取其中一个端口的
数
据
系统:centos7 项目:laravel5.8+Workerman+
gatewayWorker
+nginx 我的项目中共启用了两个
GatewayWorker
端口,一个Tcp,一个webSocket在控
制
器中查询Client_id绑定信息或者Session信息的时候只能查询到Tcp端口的信息,webSocket端口的信息无法获取到; 控
制
器代码如下: !
问答
gateway推
送
消息
------------ 问题已解决,是代码逻辑问题,不好意思~~ <----------------------> 设备端与web控
制
端各使用一个worker。设备端服务端口为8899,内部通讯端口为4000;web控
制
端服务端口为8900,内部通讯端口为4001,其余配置基本一样,两个worker的
数
据
收
发
处理都在同一个Events.php里执行。现在的问题是,web控
制
端
发
送
命令,onMessage可以成功
发
送
数
据
到设备端,但反过来,当设备端返回
数
据
到onMessage之后,却无法将
数
据
推
送
回web端,使用sendToAll也不行。
问答
传输
二
进
制
省带宽?各种语言通用性?
传输
二
进
制
更省带宽?各种语言通用性? 如果我用json-rpc来实现不是更好吗?
问答
gatewayWorker
负载均衡的机
制
配置?
1、官方有一篇文章,[平滑重启](http://doc.workerman.net/install/start-and-stop.html),仅支持**Worker::runAll()**执行后的代码
进
行如有
发
布系统,通过软链指向了最新版本的代码,而且只保留10次(01-10)可以回滚的版本,问题是:我在01次启动了register,gateway,worker,这时候
发
布第11次的代码,会将01的代码删除2、
gatewayWorker
负载均衡的内部机
制
是什么,轮询?权重?可以自定义设置吗?文档上面没找到。 望作者指点一
二
,谢谢~
问答
进
程
数
量必须为1的疑问
#### 问题描述 workman 定向某个客户
发
送
https://www.workerman.net/doc/workerman/faq/send-data-to-client.html https://www.workerman.net/q/508 其中
进
程
数
量为1 phpsocket.io web-msg-sender 虽然没有配置
进
程
数
量 但是启动
发
现也是1 奇怪!/start_io.php https://github.com/walkor/web-msg-sender/blob/master/start_io.php 1、是不是workman 定向某个客户
发
送
这种情况下
进
程只能1 。2、是不是还可以使用
GatewayWorker
,它本身就是多
进
程的?
文档
数
据
库迁移
# Migration
数
据
库迁移工具 Phinx ## 说明 Phinx 可以让开
发
者简洁的修改和维护
数
据
库。 它避免了人为的手写 SQL 语句,它使用强大的 PHP API 去管理
数
据
库迁移。开
发
者可以使用版本控
制
管理他们的
数
据
库迁移。 Phinx 可以方便的
进
行不同
数
据
库之间
数
据
迁移。还可以追踪到哪些迁移脚本被执行,开
发
者可以不再担心
数
据
库的状态从而更加关注如何编写出更好的系统。"charset" => "utf8" ] ] ]; ``` ## 使用建议 迁移文件一旦代码合并后不允许再次修改,出现问题必须新建修改或者删除操作文件
进
行处理####
数
据
表创建操作文件命名规则 `{time(auto create)}_create_{表名英文小写}` ####
数
据
表修改操作文件命名规则 `{time(auto create)}_modify_{表名英文小写+具体修改项英文小写}` ####
数
据
表删除操作文件命名规则 `{time(auto create)}_delete_{表名英文小写+具体修改项英文小写}` #### 填充
数
据
文件命名规则
问答
gatewayworker
tcp黏包
通过socketManager
发
送
给服务端包;
发
第一个“你好1” 服务端推
送
给客户端是“你好1”,
发
第
二
个"你好2"、
发
第三个“你好3” 返回的
数
据
包居然把你“你好2你好3”合并一起
发
送
给客户端
问答
消息转
发
设计,如何尽最大可能支持高并
发
?
#### 问题描述 使用
GatewayWorker
同时做客户端和服务端。 做客户端使用异步请求一个ws连接,不断接受消息,将其
发
送
到Channel通道中。我目前还没有加上
数
据
处理部分,我想加上
数
据
处理部分并
发
又会下降不少。 需要实时转
发
的
数
据
处理部分是否可以通过task来实现?使用协程可以来处理不是需要实时转
发
的
数
据
,比如把接收到的
数
据
存储到
数
据
库这些阻塞操作?其他同第
二
个方案一样。 **第四个**是把客户端和服务端
进
行分布式部署。异步请求以及
发
送
消息给通道的操作 与 用户连接订阅通道消息并
发
送
消息给用户 完全分开部署。,作为主
进
程 if ($businessWorker->id === 0) { // 获取
数
据
的代码...
问答
偶尔触
发
,服务端接收不到
数
据
的问题
#### 客户端
发
送
数
据
,服务端,日志没看到 跑几个小时,就会偶尔出现一次,
发
送
了,但是服务端log没有那条id的记录,,都是执行时间比较长的任务,可能1~3分钟之间,开启的
进
程
数
为20, 但是每次可能会一次性执行
数
量达到connection->id.'#'.time().mt_rand(0, 100000); \app\model\Log::setFlag($finger); // 响应
数
据
给客户端$_server_port); // 当连接建立成功时,
发
送
请求
数
据
$_connection->onConnect = function(AsyncTcpConnection $_connection
问答
gatewayworker
的 Gateway::sendToUid($senduid,json_encode($data));
发
送
消息会有不稳定性!??
# 当硬件用tcp协议而前端用websocket时为何Gateway::sendToUid($senduid,json_encode($data))
发
送
数
据
是不稳定的(不稳定是指我已经走到这一步了var_dump($senduid)是有
数
据
的 但是我硬件那边是接收不到这个指令 前端从新链接再
发
送
指令就有可能接收到 或者没有那只有重新链接 再
发
送
就有可能接收到了 注:这期间是没有任何报错的而且$senduid是一直有
数
据
的
问答
workerman websocket协议 send 怎么流式
发
送
数
据
,为什么都是一起返回的
#### 问题描述 workerman websocket协议 send 怎么流式
发
送
数
据
,为什么都是一起返回的; windows 本地测试正常,可以流式输出, linux 服务器上不行, 都是一起输出的connection, $data) { $url = 'https://demo.xxxxxxxxxxxx.com/ai.php'; $postData = []; // 假设这是你要
发
送
的
数
据
$headers = []; // 假设这是你的请求头 // 定义回调函
数
,并通过 use 关键字传递 $connection $writeCallback = function($ch, $data) use ($connection) { // 处理接收到的
数
据
块 $length = strlen($data); // 获取
数
据
块的长度<br>",true); // 将
数
据
发
送
给客户端 return $length; // 返回处理的
数
据
长度 }; //
发
起 cURL 请求 $response
问答
gatewayWorker
中连续接受tcp
数
据
时候丢包
用gateway在做一个转
发
的网关,一边是tcp socket,一边是websocket,当tcp连续
发
十多条
数
据
,每条30字节左右的
数
据
时,gateway有时只收到七八条
数
据
,可是我加了sleep函
数
1s
发
送
一条时候,又能完整接受所有
数
据
,按理说tcp是不会出现丢包现象吧,而且我的tcp端每次send都是返回成功(没有加延时)的啊,而网关端却接受得不对?
问答
使用ssl websocket 时, 连续
发
送
数
据
时出现链接断开的情况
使用ssl websocket 时, 连续
发
送
数
据
时出现链接断开的情况, 查找原因后
发
现是TcpConnection 中 baseWrite() 方法中fwrite() 方法在写
数
据
时报错导致,我们服务器并
发
并不高, 大约100人同时在线, 所以也没有装event扩展, 是否和这个有关系呢?请求这个问题有什么解决方法吗?
分享
webman-admin管理员
数
据
限
制
的方法
##需求: 每个账号只能管理自己的下级账号,admin账号可以管理所有账号的
数
据
功能模块
进
行
数
据
限
制
仅添加人,以及添加人的上级账号可以看到。 !$field, $order] = $this->selectInput($request); $model = $this->model; //
数
据
限
制
admin_id()); $ids[] = admin_id(); $model = $model->whereIn('admin_id', $ids); //
数
据
限
制
结束
问答
请问怎么
发
送
相关信息呢
我看手册的时候
发
现属性里找不到一些能顺便
发
送
额外信息的方法,回调方法里的也是。比如 mixed Connection::send(mixed $data ) send的方法,我希望用send
发
送
数
据
的时候能够将所
发
送
数
据
的相关信息也一起
发
送
过去。比如我
发
送
一段语音,希望将
发
送
语音的所有者的姓名、id等一些相关信息也一起
发
送
过去。 但是send方法里只有两个参
数
,一个是要
发
送
的
数
据
,一个是否
发
送
原始
数
据
。请问你们都是用什么方法 来
发
送
相关的信息呢?
« 上一页
1
...
12
13
14
15
16
17
18
19
...
439
下一页 »
« 上一页
15
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝