workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
gateway 客户端如何监听服务器
发
送
过来的
数
据
用定时器的话,每隔多少秒访问一次,他的client_id就变了,也无法实现两个客户端的对话
文档
on
``` $callback_function ``` 事件
发
生时触
发
的回调函
数
。函
数
原型为```callback_function(mixed $event_data)```。```$event_data```是事件
发
布(publish)时传递的事件
数
据
。 注意: 如果同一个事件注册了两个回调函
数
,后一个回调函
数
将覆盖前一个回调函
数
。## 范例 多
进
程Worker(多服务器),一个客户端
发
消息,广播给所有客户端 start.php ```php <?; } }); }; $worker->onMessage = function(TcpConnection $connection, $data) { // 将客户端
发
来的
数
据
当做事件
数
据
$event_data = $data; // 向所有worker
进
程
发
布broadcast事件 \Channel\Client::publish('broadcast', $event_data
问答
如何在网关服务捕获Gateway::sendToClient()的
数
据
如何在网关捕获Gateway::sendToClient()的
数
据
文档
Register类的使用
# Register类的使用 Register类其实也是基于基础的Worker开
发
的。Gateway
进
程和BusinessWorker
进
程启动后分别向Register
进
程注册自己的通讯地址,Gateway
进
程和BusinessWorker通过Register
进
程得到通讯地址后,就可以建立起连接并通讯了## 注意 register端口千万不能开放给外网,否则可能遭受攻击 客户端不要连接Register服务的端口,Register服务是
GatewayWorker
内部通讯用的。register服务只能开一个
进
程,不能开启多个
进
程。 register不支持Gateway接口(包括GatewayClient接口),不要在register
进
程写任何业务。## Register类可以定
制
的内容 Register类只能定
制
监听的ip和端口,并且目前只能使用text协议。
问答
ai插件,怎么作为api 使用的时候如何处理返回消息
/app/ai/message/send 这个接口
发
送
了
数
据
后,返回的
数
据
php 怎么处理啊?感觉一个行一个好复杂
问答
控
制
器里
发
送
队列正常 定时任务里
发
送
队列不执行
同一个队列 同一段代码 直接echo也确定执行了 但是在定时任务里面调用 \Webman\RedisQueue\Client::send() 就是不执行
问答
webman里面调用 Gateway::sendToGroup的一些疑问
registerAddress = '127.0.0.1:1236'; Gateway::sendToGroup("123456", hex2bin("020300000002C438"));//给特定组
发
消息Gateway::sendToGroup("234567", hex2bin("010300000002C40B"));//给特定组
发
消息 return json( array_merge(Gateway::getAllUidList(),Gateway::getAllClientIdList())); 控
制
器可以放回正常的
数
组。Gateway::sendToGroup("123456", hex2bin("020300000002C438"));//给特定组
发
消息 只会执行这一个,第
二
个就不执行了 123456 、234567如果把第
二
个,放在前面,也执行这个,后面的就不执行了。 这是为什么呢? 目的是循环给所有的组
发
不同的消息。 请问一下这个怎么搞,或者搞个什么方案,谢谢了。
问答
redis-queue怎么批量投递
数
据
呢
比如一个表里有个3,5万个
数
据
遍历投递很慢 foreach ($users as $data) { $queue = 'sms'; Redis:
问答
workerman怎么实现一个
进
程一个端口监听不同的https网站
比如:一个
进
程,监听0.0.0.0:443地址,当有连接请求时,根
据
不同的域名,使用相对应的ssl证书去解密.就是先有一个socket,不设置ssl证书,等连接来时,根
据
不同的域名,给socket配置相应的证书, 不过我看https原理
发
现这样不通,https是先
进
性ssl握手,之后再将
数
据
返回到上层,
问答
webman 自定义
进
程 bootstrap加载问题
## 问题 - 有些自定义
进
程不需要使用
数
据
库,当前是所有
进
程都会执行加载 ` 主 bootstrap.php ` 来连接
数
据
库造成不必要的连接占用 - 当前使用是自己修改了 ` support\bootstrap.php `, 新版本webman是否可以把老版本的这个功能加回来 ## webman老版本 - 在 webman v1.1.2 及之前版本中 自定义
进
程可自行设置需要加载的 `
问答
使用GatewayClient之后
数
据
库连接不会自动断开
每次有请求到接口中使用
数
据
库的地方都会新一个连接 使用完之后不会自动断开 达到最大请求
数
之后
数
据
库出1040 之前代码中没有使用gatewayclinet的时候没有出现这个情况
问答
请教:关于WebServer如何方便水平扩展
(多台):nginx负责所有请求分
发
,workerman处理
数
据
并返回给nginx。这种方案难点在于 nginx如何与worker通信,协议如何
制
定?客户端通过nginx转
发
给workerman处理,增加一层网络开销,性能是否会有影响? 2.2.3) 当有客户端请求来时,WebServer建立到Worker异步tpc连接 2.4) Worker处理完
数
据
返回给WebServer 2.5) Worker返回
数
据
给客户端 在这个设计中WebServer
进
程开启一个定时器,读取注册的业务服务器ip+port,采用某种算法(假设随机抽取)分
发
请求。不知道这种方案是否可行,有没有需要改
进
的地方??个人想法倾向是以第
二
种方式实现,请教各位!
问答
插件的安装机
制
提个小建议
#### 问题描述 在插件
二
开的情况下,以webman/admin为例子,如果手动调整了视图为blade,视图文件则.blade.php结尾,这时候删除掉原来的视图文件,而当另外一个同事首次开
发
时候,只是去掉了后可能又会存在以后需要同步插件的问题还有插件代码缺失问题(虽然webman/admin不会) #### 解决建议 希望可以新增composer配置去忽略安装问题或者和应用一样有个版本的升级机
制
问答
GatewayWorker
安装拓展最多能支持多少tcp并
发
1、
GatewayWorker
在windows下安装https://wenda.workerman.net/question/3404event扩展拓展最多能支持多少tcp并
发
例如我的服务器配置
问答
Webman中有两个gateway ,Gateway::sendToUid()有时
发
送
不成功
#### 问题描述 webman中开启了两个gateway,对应的register分别为:127.0.0.1:6238和127.0.0.1:7238 当用下面的方法
发
送
消息时,客户端有时收不到消息,
问答
反馈 webman-push插件两处BUG
#### 程序代码或配置 ``` // 执行绝对是有问题的,没有正常
发
送
结果 $ch = $this->createCurl($this->_settings['api_address'], $通过一点点的追踪
发
现了上述的两个问题; 1、
发
送
的这个API接口,因为消息包含name-channels等,可以完全使用POST写死或者直接使用一个HTTP库更好一些,或者可以把自身的request扩展下,包装guzzlehttp一层可以自己写GET POST
数
据
更稳定一些。增加一个加密也可以,这样
数
据
通讯也安全了,如果可行,也可以参考C++ TCP链接里面常用的struct消息结构体来
进
行
数
据
的捕捉! 2、rawBody函
数
,校验过了,但是。。。这个错误提示搞的我怀疑人生了,我把
发
送
签名,接收签名都打印出来,结果导致我以为 ``` // 一开始我以为是这里断言的,说实话,我对着电脑
发
呆了很久很久~ if ($auth_signature
问答
GatewayClient包使用问题
#### 问题描述 目前使用laravel 框架 引入了 GatewayClient包 文档中描述:通过GatewayClient
发
送
的
数
据
不会经过Event.php,而是直接经由Gateway
进
程转
发
给客户端
问答
【已解决】think-orm访问国产化
数
据
库异常
#### 问题描述 think-orm访问国产化
数
据
库highdb 出现sql语句报错,
数
据
库类型是pgsql 其中某个报错的sql语句:`SELECT admin_role.*,pivot.* ASdelete_time" IS NULL`; 大神们如何解决这种
数
据
库解析出来的语句报错? #### 程序代码 ##### 1. 调用位置: !
问答
通过http协议post方式接收xml
数
据
解析不全
通过tcpdump抓包,真实传输
数
据
如下所示 ```xml Pragma: no-cache Content-Length: 334 Content-Type: text/xml <xml><ToUserName></EventKey> <MenuId>430813768</MenuId> </xml> ``` 但是通过var_dump($message)去打印,只有如下
数
据
array(1) { =>array(1) { ["CDATA=> string(0) "" } } 是不是workerman的http解析xml只是解析一部分
数
据
的原因?
分享
webman 在http接口
发
送
websocket消息如何实现?
## 思路 ```text 使用Channel分布式通讯组件启动一个服务,用于夸
进
程通信 ``` ```text websocket端: 在websocket启动时通过监听启动事件,在启动事件实现 ChannelChannel逻辑:连接上Channel服务,订阅一个自定义事件用于接收来自http的通知 接收到http的通知后可以在websocket启动事件中获取到websocket 客户端连接对象,通过连接对象将消息推
送
到前端``` ```text http端: 连接上Channel服务,publish消息到上面定义的事件 ``` ###
进
程配置 !
« 上一页
1
...
88
89
90
91
92
93
94
95
...
442
下一页 »
« 上一页
91
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝