workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
webman使用channel做
进
程间的通信,如何保障连接的publish,自己订阅不消费
) $event_name = 'event_luckysheet'; //
发
布某个自定义事件,订阅这个事件的客户端会收到事件
数
据
,并触
发
客户端对应的事件回调connections[$connection->id]); echo "onClose\n"; } } ``` 基于luckysheet做一个webman的后台,但是Channel
进
行
进
程间的通信,自己接受的data,返回 `{"createTime":1661484194207,"returnMessage":"success","type":1,"status":"0"}` 然后吧接口的
数
据
分
发
给其他连接端,是需要模仿gateway自己维护一个uid,带到publish的$data里面 然后on的时候,在判断是否是自己
发
送
出去的,还是有什么别的方案?当连接
进
来的客户端
发
送
请求的时候,
问答
websocket前端如何用js定时
发
送
心跳包
请问使用workerman3.X的websocket协议,前端怎么用js定时
发
送
心跳包呀,我用了 ```js self.setInterval("heart()",1000); function heart() { ws.send('heart'); } ``` 好像无法
发
送
,不知怎么做呢?
问答
关于workerman离线消息缓存
发
送
的问题
假设用户1给用户N
发
送
消息 用户N处于离线状态 先把用户1的消息存储于缓存中 用户N上线 在
发
送
过去
问答
请教关于
进
程
数
问题。~
#### 问题描述 请教下 单机场景, Gateway的
进
程
数
设置多了有什么作用吗?只设置1个会有问题嘛 ? BusinsessWorker的
进
程
数
只设置1个会有什么问题吗?比如设置4个
进
程
数
workerman会自动选一个
进
程处理业务吗?
问答
GatewayWorker
没有触
发
连接onConnect回调
/ 服务注册地址 $gateway->registerAddress = '127.0.0.1:1238'; // 心跳间隔 //$gateway->pingInterval = 10; // 心跳
数
据
$connection , $http_header) { // 可以在这里判断连接来源是否合法,不合法就关掉连接 // $_SERVER标识来自哪个站点的页面
发
起的[图片](//www.workerman.net/upload/questions/20181222/9e7db08df66663dab186ff57bb32053b.png) 当我在前端控
制
台输出ws
文档
使用mysql
## Gateway/Worker模型
数
据
库使用示例 > **提示** > 推荐使用[webman的
GatewayWorker
插件](https://www.workerman.net/doc/gateway-worker/webman.html),对业务目录、
数
据
库、redis等支持更完善。* *
数
据
库示例,假设有个your_db_name库,里面有个user表 */ class Events { /** * 新建一个类的静态成员,用来保存
数
据
库实例 */public static $db = null; /** *
进
程启动后初始化
数
据
库连接 */ public static function onWorkerStart,根
据
发
来的命令打印2个用户信息 * @param int $client_id
发
消息的client_id * @param mixed $message 消息 * @return
问答
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中的参
数
必须在对应方法中写对应的参
数
,这样的话如何
进
行统一处理呢?
问答
workerman开
发
的客服系统
发
生消息丢失的情况
用workerman开
发
了客服系统之后,在
进
行测试的时候,
数
据
偶尔会
发
生丢失的情况,event.php中的onmessage方法中, ```php $msg = JsonProtocol::decode); return Gateway::sendToUid($msg, JsonProtocol::encode($bk)); } ``` 先判断接收方的uid通信通道是否存在,存在就把消息插入
数
据
库,然后把消息
发
给接收方uid 。但是
数
据
库中消息存入成功了,客服缺没有接收到消息?这种问题只是偶尔
发
生,匪夷所思,还望大侠解答?在这里谢谢了
问答
workman
进
程中是单线程么
rt,workman
进
程是单线程么,就是轮询和执行回调, 是会冲突么?如果我只启动一个
进
程的话, 是不是无论timer 还是 onmessage 中的回调, 都是按顺序一个一个执行的,处理
数
据
都不需要加锁?还是 onMessage 之间会同时访问相同的
数
据
? 谢谢~~~以前用c++, 刚开始接触php开
发
游戏服务器, 考虑的互斥有些多
问答
如何与其他平台实现
数
据
对接
我们目前在使用workerman做一些物联网的
数
据
平台,在使用过程中,需要和其他平台
进
行
数
据
的对接,遇到两个问题: 1、目前很多的平台采用api接口的方式,需要我们去下载
数
据
过来,大部分可以通过http
问答
GatewayWorker
的onmessage里面的代码只在首次执行
当客户端第一次连接上来的时候,
发
送
了一个消息,是json格式的,首次的时候会正常解析,到了第
二
次,就不在执行解析的那一行的代码了 版本:3.0的 系统框架是thinkphp6 !
问答
使用
GatewayWorker
客户端
发
送
给另一个客户端消息,如何做呢
现在是做一个称重传感器平台,有一个Web界面,界面更新参
数
值后,需要使用Socket传输至传感器里的Linux系统里; 还有另一个功能是称重传感器实时把
数
据
显示在Web界面中,请问大神给个思路。。。
问答
gatewayworker
自定义协议
看了workerman手册的这个章节 定
制
通讯协议 http://doc3.workerman.net/protocols/how-protocols.html 以文中MyApp/Protocols/JsonNL.php的实现, 放在
gatewayworker
中,是不是在
GatewayWorker
\Applications\下新建Protocols文件夹,然后建立JsonNL.php,这样是不是项目名称变成了Protocols
GatewayWorker
使用workerman自定义协议,应该把自定义的协议文件放在哪个目录呢?谢谢
问答
连接
数
超过1024,客户端不能
发
送
消息
#### 问题描述 连接
数
超过1024左右,客户端在连接就会卡住,
发
布了消息,已经按文档做了优化 #### 截图报错信息里报错文件相关代码 !
问答
如何使用定时器功能,每间隔一段时间,给用户
发
送
消息
如何在workerman的Demo的基础上,实现 每间隔一段时间,服务器向指定的用户推
送
消息
数
据
。 如何把定时代码和workerman的代码结合起来?
问答
请教一个socket长连接相关的问题
php cli 单
进
程,死循环获取binlog
数
据
,因为怕
数
据
太多,消费能力跟不上,想着用workerman多个worker
进
程处理,但是多个worker
进
程存在的问题是有序性问题,同一张表的事件只能同时由一个worker
进
程处理,我目前的想法是缓存了几个缓存了几个socket链接,然后根
据
表名去走对应的socket链接
发
送
消息,不确定这样子稳不稳定。function($worker) { // 将db实例存储在全局变量中(也可以存储在某类的静态成员中) dbBase::getInstance()->init(); }; // 当客户端
发
来
数
据
时$worker->onMessage = function($connection, $data) { echo $data.PHP_EOL; //将mysql
数
据
写入ES // 向客户端
发
送
事件中的
数
据
库表名,找到对应的 $client = $this->getClientByEvent($event); //
发
送
数
据
,注意5678端口是Text协议的端口
问答
gatewayworker
能实现同步多次问答吗?
做智能家居,大概意思就是 web下
发
指令给gateway,gateway将指令分析后下
发
给指定设备(这一步完成) 设备会与gateway
进
行问答操作,如果每次都从onMessage从头来会丢失很多
数
据
导致失败gate要先要改变其中一个接口状态
发
一系列指令完成后续操作成功或失败后切换回初始状态,再去对另外一个接口做相同的操作。设备同时只能只能有一个接口状态被改变。整个流程就卡死在这里。[](//www.workerman.net/upload/20200401/015e83ee20b027.png) left和right同时只能执行一个,如果同时执行left和right第
二
个必定失败
问答
在某些较低版本的 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 也会有这个头
问答
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后, 如何可以并
发
处理这些消息,而不是阻塞等待。
问答
怎么在另一个控
制
器方法中使用AsyncTcpConnection的send方法呢
[截图](/upload/img/20231106/06654890f83087.png) 现在我想着在另一个方法中使用send
发
送
数
据
,应该怎么操作呢? !
« 上一页
1
...
61
62
63
64
65
66
67
68
...
442
下一页 »
« 上一页
64
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝