workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
gatewayworker
如何和微信公众号对接呢
各位大神,需求是这样的,微信公众号那边
发
送
一条信息,
gatewayworker
这里可以实时接收消息并回复消息 烦请告知一下
问答
关于程序代码中出现异常后的程序运行逻辑请教
程序逻辑如下 OnConnect 中,设备链接服务器的时候,设置定时器(定时器的作用是定时往这个设备
发
送
一个指令并在OnMessage中接收返回
数
据
) 同时在 onClose 中,关闭设置的定时器然后在onWorkerStart 中设置了一个定时器,作用是每小时做一些
数
据
库的操作之类的。目前
发
生了一个状况,因为某些原因,onWorkerStart 中的定时器在操作
数
据
库的时候,因为SQL语句错误的原因造成此定时器内程序运行错误,并抛出异常。后果是 设置了5分钟强
制
重连服务器的设备依然可以正常
发
送
数
据
且接收返回,设置保持在线功能的设备从抛出异常开始,设置的定时器再也不
发
送
数
据
,当然也就没有任何返回。或者说是否有忽略错误继续运行程序的方式(主要是某些考虑不周的原因导致了SQL语句错误
进
而引
发
异常)
问答
心跳websocket服务器时,返回多条相同的
数
(已解决)
但是通过Gateway::sendToCurrentClient()「其它
发
送
方法sendToUid、sendToClient也一样」
发
来的
数
据
条
数
正好是更换房间的
数
量,而且每一条的内容完全一样。客户端
发
送
心跳, ```javascript sendPing() { if (this.socket) { this.socket.send({ data: JSON.stringifyGateway::leaveGroup($client_id, $room_id); return; //
进
入房间room_id; Gateway::joinGroup($client_id, $room_id); return; ``` 切换多个房间后,微信开
发
者工具中竟是这样[](/upload/img/20230824/2464e76e935f24.png) 第一行为客户端心跳服务器 后面多行为服务端
发
来的
数
据
:条
数
与房间
数
相同 不知为何,百思不得其姐!
问答
关于Gateway全局$_SESSION的不同步问题
首先这个$_SESSION在gateway和worker之间也是通过Socket通讯的,这里就产生一个
数
据
延迟问题,在项目的反复实践中被证明存在问题。当写入$_SESSION
数
据
量比较大时尤其明显,比如写入2k以上
数
据
。即便强
制
同步了,由于
进
入包连续
进
入,立刻会触
发
下一次的OnMessage,无论是否强
制
读取,得到的都是上次更新之前的旧
数
据
。
问答
关于
gatewayworker
的架构
公司需要搭建
gatewayworker
服务器做即时聊天。现在打算的是 单独一台服务器做为workerman的驱动,暴露在公网上,
数
据
redis和mysql方面 走API去操作,但是我有一个疑问,redis 有没有必要走接口。或者说有没有什么更好的设计架构。因为
数
据
很重要
问答
关于“
数
据
或者资源可以全局共享”
workerman的优点中有一条“
数
据
或者资源可以全局共享”,请问怎么实现?我想在Event.php中用mysql_connect()创建一个
数
据
连接$db_conn,然后后面有新的连接
进
来时,可以不用再次连接,如何做?
问答
作为客户端
进
行wss订阅
我想用workerman作为客户端去订阅其他网站的信息,那边有
数
据
就会向我
发
送
消息,但是一直没有信息。 linux链接一段时间后就会关闭。
问答
AsyncTcpConnection断线重连只能触
发
一次
AsyncTcpConnection断线重连只能触
发
一次,我是写在onClose里面,代码: ```php $connection_to_ser->onClose = function($connection_to_serecho $b; $connection_to_ser->connect(); },array($connection_to_ser,"ttttt"),false); }; ```
发
现不论连到哪个IP的任意端口都能连上,控
制
台都是输出start success,导致第
二
次onClose不执行了,什么原因?
文档
心跳检测
所以需要客户端与服务端定时
发
送
心跳
数
据
保持连接不被断开。 ## 心跳检测的原理是什么?客户端定时每X秒(推荐小于60秒)向服务端
发
送
特定
数
据
(任意
数
据
都可),服务端设定为X秒没有收到客户端心跳则认为客户端掉线,并关闭连接触
发
onClose回调。目前
GatewayWorker
支持两种心跳检测,服务端设定多少秒内没收到心跳关闭连接,同时也支持服务端定时向客户端
发
送
心跳
数
据
,推荐客户端
发
送
心跳,也可以两种检测同时开启。如果设置为0代表客户端不用
发
送
心跳
数
据
,即通过TCP层面检测连接的连通性(极端情况至少10分钟才能检测到连接断开,甚至可能永远检测不到) ``` Gateway::$pingData ``` 当需要服务端定时给客户端
发
送
心跳
数
据
时, ``` $gateway->pingData ```设置为服务端要
发
送
的心跳请求
数
据
,心跳
数
据
是任意的,只要客户端能识别即可。
问答
分开部署,
GatewayWorker
如何把消息收到的消息转
发
给webman?
#### 问题描述 业务都在webman,
GatewayWorker
没有和webman部署在一起,
GatewayWorker
和webman分开部署开
发
,但在一个内网,有办法直接把收到的消息转
发
给webman
问答
数
据
库连接不关闭
你好大佬,请教一下,最近
数
据
库有假死的情况,怀疑是连接过多没有断开。咱们这个框架。连接
数
据
库用完执行 Db.php里的close()方法,
数
据
库连接会关闭吗。
数
据
库用show status like 'thread%'; 查看 Threads_ _connected 没有减少正常吗
问答
binary协议前台js如何
发
送
数
据
?
如题,搭好了workerman和binary协议,用client.php上传没有问题,但是js使用如下代码: ```javascript var ws=new Websocket(wss://******:8080); ws.send(data); ``` 报错 连接502,但是client.php又能上传. 所以问下js应该怎么写才能用binnary协议传文件,谢谢.
问答
有个关于
进
程
数
的问题我想请教下
比如我开了一个wokrer,count为10 在每个
进
程里需要使用AsyncTcpConnection连接外部的一个服务器获取
数
据
。也就是有10个
进
程。每个
进
程中都会分别new AsyncTcpConnection() 假设其中一个
进
程和外部服务器通信超时了。那么会影响其他9个
进
程的通信吗?
问答
post收不到
数
据
post的
数
据
内容: ``` 7VVwqmUYCAyr39q1RwTfad7roJeRvNmk2wW4Re7SbPNTS9auwr09bOYHzYzDTtdX01c8111XtSYDqyoS+PxVwylq2ZHz97GXiGbDhLGwrmvXLhTgAOP0Ni3D+EIeeWx6/UillqUY9QFmMORqGrk6jyMisOHECy90YXp+Wy0ios= ``` 用php file_get_contents("php://input");就可以收到
数
据
问答
http-client 最大并
发
数
#### 问题描述 我
发
现 http-client 是有最大并
发
数
的 比如修改配置参
数
中的max_conn_per_addr 就能调整最大并
发
参
数
了 $options = [ 'max_conn_per_addr然后 定频的去从队列中 获取 要请求的
数
据
。 然后
发
起请求 但是 这又带来一个问题。 因为 被请求方,有时候响应快 有时候响应慢。我就不知道 http-client 当前有多少并
发
连接
数
了。 我要怎么获取到当前的并
发
连接
数
呢?因为如果 并
发
连接
数
满了的话, 我这时候去
发
去请求,他是无效的 彷佛直接未执行该动作一样 记录并
发
请求
数
。所以 http-client 类的话有直接获取到当前并
发
的请求
数
嘛?
问答
linux下异步tcp返回无
数
据
(已解决)
在windows中 $connection_to_hsm->onMessage能够得到返回的
数
据
,linux中得不到,不知道我的代码写的是不是有问题?$connection->send($buffer); }; // 执行异步连接 $connection_to_hsm->connect(); // 客户端
发
来
数
据
时,转
发
给对应的连接 $connection->onMessage = function($connection, $buffer)use($connection_to_hsm) {
问答
使用workerman
发
起压测
使用workerman
发
起的压力测试 测试 wss 到250左右就断开了 3个扩展都安装了 第一个压测的脚本 第
二
个是结果
gatewayworker
版本是 3.5.17
问答
在中间件里
进
行模板变量赋值后在控
制
器如何获取?
比如,我在中间件
进
行了权限判断后,
进
行 View::assign('name', 'value'); 然后回到控
制
器中,我想使用$name这个变量的值,那要如何获取?
问答
made:model命令现在可以根
据
数
据
库中的表格生成model吗
webman/console的 made:model 命令 可以根
据
数
据
库中的表格并读取表格所有参
数
生成model吗 具体该怎么操作?php webman make:model users 生成的model文件并没有生成所有参
数
,也没有把属性的备注加
进
去 users表有两个字段id,name 生成文件如下 ``` <?
问答
关于 Channel Workerman 的 count 问题
🤨 (学习)了一年多左右, 但是到现在还困惑在这些通信机
制
和
进
程(因为长时间泡在 PHP-FPM+NGINX里不太懂其他) #### 问题 01 ✨ count
进
程
数
为10的跟1的比起来更快?因为我之前跑的程序当中是 `ServerA` 监听 `websocket`
数
据
并
发
送
到 `ServerB` 的场景 --- > `ServerA` 只是 默认的worker ,没有配置端口(count为 1) > `ServerB` 配置了端口和 http协议 并设置 count 为 10 --- 爬虫业务部分是:如果 在监听中 type 为指定的 value 的话 从`ServerA` 把
数
据
发
送
给`ServerB`,`ServerB`接收后会插入或更新
数
据
库 --- - `ServerA`
发
送
时,会 `AsyncTcpConnection` 来连接 `ServerB` -
发
送
数
据
`$` 之间用 `Channel` 通信 --- - `ServerA`
发
送
时,会 `Channel Publish` 来
发
送
数
据
- `ServerB` 监听 `Channel` ,接收请求就会
« 上一页
1
...
55
56
57
58
59
60
61
62
...
430
下一页 »
« 上一页
58
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝