workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
websocket前端如何用js定时
发
送
心跳包
请问使用workerman3.X的websocket协议,前端怎么用js定时
发
送
心跳包呀,我用了 ```js self.setInterval("heart()",1000); function heart() { ws.send('heart'); } ``` 好像无法
发
送
,不知怎么做呢?
问答
gatewayworker
自定义协议
看了workerman手册的这个章节 定
制
通讯协议 http://doc3.workerman.net/protocols/how-protocols.html 以文中MyApp/Protocols/JsonNL.php的实现, 放在
gatewayworker
中,是不是在
GatewayWorker
\Applications\下新建Protocols文件夹,然后建立JsonNL.php,这样是不是项目名称变成了Protocols
GatewayWorker
使用workerman自定义协议,应该把自定义的协议文件放在哪个目录呢?谢谢
问答
workerman开
发
的客服系统
发
生消息丢失的情况
用workerman开
发
了客服系统之后,在
进
行测试的时候,
数
据
偶尔会
发
生丢失的情况,event.php中的onmessage方法中, ```php $msg = JsonProtocol::decode); return Gateway::sendToUid($msg, JsonProtocol::encode($bk)); } ``` 先判断接收方的uid通信通道是否存在,存在就把消息插入
数
据
库,然后把消息
发
给接收方uid 。但是
数
据
库中消息存入成功了,客服缺没有接收到消息?这种问题只是偶尔
发
生,匪夷所思,还望大侠解答?在这里谢谢了
问答
压力测试 Gateway与BusinessWorker
进
程显示busy
@walkor 我在workerman服务端用WebSocket
进
行图片接收与存储转
发
,压力测试出现连接断开; 测试环境: gateway 4个
进
程; businessWorker32个
进
程; 图片
发
送
端50个; 每个3秒
发
送
一张100kb左右的图片给workerman; 请问如何解决和优化?
问答
在某些较低版本的 Chrome 上 WebSocket 握手失败[已解决]
在某些稍低一些版本的 Chrome 上与 Workerman
进
行 WebSocket 握手失败,比如 Windows 版的 Chrome 41,原因是该版本的浏览器在 WebSocket 握手时默认会传一个Sec-WebSocket-Protocol 头: Sec-WebSocket-Protocol: undefined 然后就
发
生了这种错误: `WebSocket connection tohandshake: Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received` 建立连接的方法很简单,并没有传第
二
个参
数
我在高版本的 Chrome 上即使故意传一个 undefined 的变量给第
二
个参
数
,也不会
发
送
Sec-WebSocket-Protocol 头,而我说的版本中,即使我第
二
个参
数
传 null 也会有这个头
问答
如何动态的创建
进
程或php强
制
restart所有程序呢?
#### 问题描述 如何动态的创建
进
程或php强
制
restart所有程序呢?搞了一天搞吐了, 用`worker_start`创建的
进
程状态跑不起来, 通过删除主
进
程`posix_kill(posix_getppid(), SIGUSR1);` 重启也不行(通过读DB动态生成的
问答
AI 2.0 CHUNK模式收到GPT
数
据
如何广播给websocket服务端
#### 问题描述 现在用的是AI2.0,如何收到GPT
数
据
,再
发
给websocket服务端,websocket服务端收到
数
据
再广播给各成员
问答
RabbitMQ中消费时,是不是能使用异步(如异步http)组件吗?
response) use ($message) { echo 'Resp:', $response->getBody(), "\n"; $message->ack(); }); }); ``` 目前
发
现在这样使用异步http组件,http一直没有响应(请求都没
发
送
)。https://wenda.workerman.net/question/6257 见walkor的回复:consume里是一个死循环,一直循环消费队列的
数
据
。因为代码一直运行在这个循环里,workerman永远无法得到控
制
权,就无法把
数
据
发
送
出去。 我本意是当设置消费者的prefetch_count后, 如何可以并
发
处理这些消息,而不是阻塞等待。
问答
请教,我用webman的自定义
进
程来实现event-stream,前端是umi,遇到一个代理的问题
前端端口为8000,webman的自定义
进
程是8686,因此,在umi,中做了proxy代理,代理到8686端口来访问
进
程。```php if ($request->header('accept') === 'text/event-stream') { // 首先
发
送
一个 Content-TypeCache-Control'=> 'no-cache', 'Connection'=> 'keep-alive' ])); // 定时向客户端推
送
数
据
Timer::del($timer_id); return; } //
发
送
message事件,事件携带的
数
据
为hello,消息id可以不传 $connection->send(new ServerSentEvents(['event' => '
问答
如何使用定时器功能,每间隔一段时间,给用户
发
送
消息
如何在workerman的Demo的基础上,实现 每间隔一段时间,服务器向指定的用户推
送
消息
数
据
。 如何把定时代码和workerman的代码结合起来?
问答
如何与其他平台实现
数
据
对接
我们目前在使用workerman做一些物联网的
数
据
平台,在使用过程中,需要和其他平台
进
行
数
据
的对接,遇到两个问题: 1、目前很多的平台采用api接口的方式,需要我们去下载
数
据
过来,大部分可以通过http
问答
GatewayWorker
的onmessage里面的代码只在首次执行
当客户端第一次连接上来的时候,
发
送
了一个消息,是json格式的,首次的时候会正常解析,到了第
二
次,就不在执行解析的那一行的代码了 版本:3.0的 系统框架是thinkphp6 !
问答
使用
GatewayWorker
客户端
发
送
给另一个客户端消息,如何做呢
现在是做一个称重传感器平台,有一个Web界面,界面更新参
数
值后,需要使用Socket传输至传感器里的Linux系统里; 还有另一个功能是称重传感器实时把
数
据
显示在Web界面中,请问大神给个思路。。。
问答
workman
进
程中是单线程么
rt,workman
进
程是单线程么,就是轮询和执行回调, 是会冲突么?如果我只启动一个
进
程的话, 是不是无论timer 还是 onmessage 中的回调, 都是按顺序一个一个执行的,处理
数
据
都不需要加锁?还是 onMessage 之间会同时访问相同的
数
据
? 谢谢~~~以前用c++, 刚开始接触php开
发
游戏服务器, 考虑的互斥有些多
问答
webman引入thinkphp的验证器如何对get路由的参
数
进
行验证
#### 问题描述 webman引入了thinkphp的验证器,同时设置一个get路由,如/artice/read/{id:\d+},我想在验证器层对id参
数
进
行验证,使用规则 'id' => 'require$message = [ 'id.require' => 'id不存在', 'id.number' => '非法id', ]; ``` 对 /article/read/1 这样的路由 在控
制
器层手动调用$validator->check(['id'=>$id]); 这个没有问题 但是我想在其它地方对此验证
进
行统一处理,想通过 request()->get() 这样的方式
进
行获取请求参
数
,实际运行时根本不起作用, 查阅文档说get请求的pathinfo中的参
数
必须在对应方法中写对应的参
数
,这样的话如何
进
行统一处理呢?
问答
我是使用webman+
gatewayworker
插件过程中
发
现内存过了200M 好像会断开
#### 问题描述 我是使用webman+
gatewayworker
插件过程中 想要测试服务器的最大连接
数
所以我在另一个服务器上部署了workman 测试程序 程序就是官方推荐的程序 设置了连接
数
为5W 测试环境用的1panel 容器镜像是ghcr.io/ghcr.io/tinywan/docker-php-webman:8.2.11 测试过程中
发
现连接
数
大约4W多快到5W多的时候 在线连接
数
会从4W多倒掉1W 2W的样子 我怀疑是内存到了200M会重启的原因 第一次使用webman+
gatewayworker
插件不知道是不是设置的问题 还有就是 测试服务器没有惊醒linx内核优化 感觉也不是这个问题
问答
连接
数
超过1024,客户端不能
发
送
消息
#### 问题描述 连接
数
超过1024左右,客户端在连接就会卡住,
发
布了消息,已经按文档做了优化 #### 截图报错信息里报错文件相关代码 !
问答
多台硬件设备与服务器
进
行tcp连接,如何区别连接
多台硬件设备要与服务器
进
行tcp连接,请问是用什么方法 1)服务器打开多个端口监听,一个硬件连接一个服务器端口,但是如何同时监听多个端口,并独立
发
送
数
据
?
问答
PHP版本7.3 如果PHP分配的内存只有128M,后面请求
数
增加,会有影响吗
之前改为
GatewayWorker
跑了一段时间,都正常,最近几天,每一次到高峰期,长链接请求和推
送
就挂了,等过了一段时间峰值下降,一切又正常了。一出问题,只能重启服务,初始化
数
据
又变得正常了。这边现在时 PHP + redis(放阿里云) +
GatewayWorker
。 这边按照文档在centos系统做了Linux内核优化,情况还是存在,我们这边高峰连接
数
也不会超过2000.
GatewayWorker
里面主要就是对用户分组推消息,以及根
据
请求带过来的token获取用户信息,并保存在session里面.
问答
关于MMORPG开
发
遇到的困惑
我看了BrowserQuest的实现,在WORKER里创建了世界,世界里面的怪物区域采用TIMER
进
行刷新和AI处理,这个游戏业务逻辑比较简单,玩家也少,如果同时承载大量玩家的话,感觉这个WORKER响应会出现延迟在现有的GateWayWoker基础上,新增几种地图WORKER类型(以下简称MAPWORKER)与GATEWAY异步连接,MAPWORKER根
据
地图逻辑复杂程度开启相应的
进
程
数
量,GATEWAY在第一次收到用户客户端登录消息后根
据
所处地图的ID绑定对应的MAPWORKER,此后与地图不相关的信息全部转
发
给BusinessWorker处理,如聊天,仓库等,与地图相关的
发
送
到当前所属地图MAPWORKER,如移动,攻击等,各个MAPWORKER里用TIMER处理地图逻辑,如定时刷怪,AI等并将信息
发
到GATEWAY
发
给客户端。这样做可以把每个
进
程的业务逻辑延迟降低、也可以分布式提高性能,但是不可避免的会出现共享
数
据
的存储问题,毕竟MMO里需要广播的场景太多,哪怕移动一步,说一句话,都可能导致广播
数
十乃至
数
百,如果每次都依靠实时从
« 上一页
1
...
62
63
64
65
66
67
68
69
...
450
下一页 »
« 上一页
65
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝