workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
一个Gateway下挂载多个Worker项目,怎么配置?
想法是,在Application目录下创建多个项目,其中一个项目(A)用于开启Gateway
进
程,保存客户端连接
数
据
。用户都连接到(A)这个项目上,
发
消息的时候用协议号,通过(A)向其他的项目
发
送
数
据
,其他项目返回
数
据
给(A),(A)再返回给用户。 请教如何配置(A)与其他项目的配置文件?(A)只想部署Gateway
进
程,其他项目只想部署Worker
进
程 所有项目都是基于Gateway/Worker的框架。
问答
【已解决】webman中使用swoole,控
制
器中Request类已经做了协程上下文处理吗
#### 问题描述 **我找到了答案,在协程中使用全局变量确实是会互相干扰,只是我下面的代码是开多个
进
程处理的,恰好两次请求是两个
进
程,所以是两份全局变量。改成只开1个
进
程,就会
发
现协程污染的问题了** - 目前在已有的webman项目中想使用swoole的协程,所以Event-loop切换成了swoole。在控
制
器中的协程环境中,使用全局静态变量,按理说两次请求(两个协程)操作全局变量应该会污染的啊,但是实际上并没有
发
现污染,是webman已经做了上下文处理了么? - 如下图  ``` 按照代码逻辑来看, 第一次请求参
数
a=1时,当前请求的协程A会先修改全局变量为aaa,然后协程挂起5秒; 第
二
次请求参
数
a=2时,当前请求的协程B会直接修改全局变量为bbb,然后返回给客户端 ``` - 问题: ``` 如果在五秒内依次请求上述两个请求,请求1在5秒协程恢复后,应该已经被请求2污染了啊
问答
webman + RabbitMQ 消费
数
据
问题
wenbman消费
数
据
,刚开始启动程序, RabbitMQ队列显示消费速率,大约一分钟后,webman显示一直在消费,但是RabbitMQ队列
数
据
量没有减少,不显示得消费者客户端 !
问答
windows下 gateway+tp5 如何使用gateway
进
行消息上传和下
发
windows下 gateway+tp5 如何使用gateway
进
行消息上传和下
发
官方提供的方式是在和MVC框架结合时 使用ajax
进
行消息上传 使用gatewayclent
进
行消息下
发
但是这样总是感觉不够清爽可不可以直接使用gateway上传 通过onmessage对上传的消息
进
行转
发
转
发
的消息通过tp框架
进
行判断处理 处理后的消息再通过gatewayclent下
发
onmessage目前可以实现消息转
发
但是调用的函
数
不能使用tp库的类 无法继承think/controller 应该如何处理 我看好多人都遇到了同样问题 官方有没有解决办法 或者哪位路过的大神指导一下 谢谢
问答
workman倒计时30秒
进
行ws前后端交互,怎么做?
如果是前段
进
行倒计时触
发
,所有在线用户都会
发
送
向后端
发
送
消息,而后端倒计时触
发
则直接推
送
,不需要用户前段
发
送
消息,这个具体怎么做?
问答
workerman如何保存一个连接用来下次主动
发
送
消息给客户端?
比如服务端连接回调 onConnect ,连接成功后把回调参
数
存起来,方便下次需要
发
送
消息给客户端时直接调用
问答
json中怎么加入自己的
数
据
json中怎么加入自己的
数
据
, ws.send('{"type":"say","to_client_id":"'+to_client_id+'","to_client_name":"","contentto_client_id":"'+to_client_id+'","to_client_name":"","content":"'+input.value+'",“number”:"100"}');后,从服务端接受
发
来的消息
问答
【已解决】webman的HTTP
进
程启动后,建立websocket连接会卡很久
## 问题描述 webman的HTTP
进
程,设置为`8`个
进
程提供服务; 在 http
进
程启动后,执行 `onWorkerStart` 方法时,建立与
gatewayWorker
的 `ws`连接。故障现象是:有1-2个
进
程的链接立刻建立成功 `onMessage` 收到信息;而 余下的 **N个
进
程**,要**卡顿很久才**能收到 来自 ws 的 `onMessage` 消息。php namespace app\process; use
GatewayWorker
\Lib\Gateway; use support\Log; use Throwable; use Webmanworker = $worker; \Workerman\Protocols\Http::requestClass(static::$requestClass); // 连接
GatewayWorker
/ 忽略pong if ('pong' === $data) { return; } // 解析
数
据
分享
整理分享Workerman中利用popen实现多
进
程web ssh
### 起源 群友询问如何
进
程异步执行命令行任务,且有通知机
制
,想用来做web ssh,兔子大佬指导可以通过 `popen` 来实现: !== false) { unset($this->processes[$key]); // 从活动
进
程池移除 } } // 获取池中的所有
进
程
数
量($processPool->processCount() >= $processPool->maxProcesses) { return $connection->send('使用
进
程
数
已达最大
数
\Workerman\Worker::$globalEvent->offReadable($process); } else { // 将输出
发
送
给客户端PHP_EOL; } ``` `php start.php start` 启动项目,前端使用 【WebSocket 测试工具】
进
行连接,
发
送
消息执行命令:`/usr/bin/php8.2 command.php
问答
webman+gateway设备
数
据
返回丢失
#### 问题描述 与硬件设备通信,设备登录成功定时批量
发
送
指令,业务逻辑都是推
送
到队列处理,按理不存在处理延时问题,但是总有个别指令
发
送
过去没有收到响应,不知如何定位问题,使用的都是最新版安装包
问答
请教使用socket做为客户端和北向接口对接,请教如何打包
数
据
发
送
。
5.3.1 消息格式 消息
数
据
由消息头和消息体组成。消息头由9个字节(byte)表示,消息体长度不固定,各类消息不同。消息头的9个字节不能当做字符处理,需要按整型
数
处理。 !
问答
关于自定义协议的问题,大端转小端 网络字节序
根
据
官方文档 http://doc.workerman.net/protocols/example.html, 客户端传输的
数
据
包样本:`1001{"userName":"okXU70-dcPj8wBF4this.sendBytes.writeArrayBuffer(this.bytes.buffer), this.socket.send(this.sendBytes.buffer), ``` 直接复
制
官方例子
二
的协议实现代码
问答
数
据
量上300以后经常会出现连接失败的问题
有的时候播间连接
数
达到300人的时候,socket连接就会一直pending... 最后就连接失败~~不能
进
行
数
据
接收。 请问这个问题处在哪里?应该如何解决和避免?
问答
workerman-statistics页面不展示
数
据
日志文件已经生成,但是后台监控页面没有展示,没有统计
数
据
,
数
据
源试了127.0.0.1还有内网的IP都不行,求助,多谢!
问答
能不能给控
制
器加个 Controller 后缀啊,加个配置也行
控
制
器叫User 模型叫User 在控
制
器里调用User模型 只有两种办法 否则就会冲突 第一种 别名 ```php use User as UserModel ``` 第
二
种 每次写全命名空间 ```php $model = new app\models\User() ``` 无论哪一种都不方便 ,最方便的就是控
制
器叫 UserController,比较控
制
器除了定义时,基本不会需要手动调用,而调用模型之类的类频率很高,采用上面两种方式比较繁琐 希望作者能改控
制
器后缀或者允许自定义
问答
请教workman 4台集群,群
发
漏收问题
我现在有4台workman集群,在一个群聊里
发
消息,群里面会有其他成员漏收的问题,是在不同的workman,推
送
不过去吗?因为
数
据
是有写入DB的
问答
我已经用TP写了个web网站但是需要在这个服务器弄个长连接实时接收
数
据
的接口,然后再给iOS调用,请问怎么做呢?
原先就是搞嵌入式的那个人调用我给他的一个接口传
数
据
到
数
据
库,然后搞app的再调用另一个接口获取这个
数
据
,只是这个
数
据
是不断变化的,所以他们都是不断的用http请求,但是从硬件上传
数
据
过来延迟有两三秒钟,所以现在就希望用socket来保持长连接
发
送
数
据
,本身这个服务器已经用tp做了这个app的后台,现在要怎么结合呢,我只是想给硬件的那个接口是长连接的就行了。
问答
【请教】延迟队列在执行前
数
据
库
数
据
被修改后如何取消先前投递的队列?
#### 问题描述 > 请教下大哥们,延迟队列在队列执执行前
数
据
库
数
据
可能会被修改(修改
数
据
后会重新投递),这时候不想之前投递的队列在执行,有什么更好的办法吗?#### 现在处理方式 在
数
据
表中加一个`queue_time`(跟随队列
数
据
投递)修改
数
据
后更新下这个时间,队列执行时先对比下,队列
数
据
中的`queue_time`和
数
据
库中的`queue_time`
文档
关于client_id
* client_id不能自定义,由
GatewayWorker
自动生成。 * 如果client_id对应的客户端连接断开了,那么这个client_id也就失效了。* 除非gateway
进
程退出重启,否则client_id一旦被使用过,将不会被再次使用。也就是说client_id在整个gateway
进
程生命周期内是不会重复的,即使分布式部署也不会重复。* 业务不应该存储client_id到
数
据
库或redis存储上,因为它是临时id,重启
GatewayWorker
后client_id会重新计
数
,导致业务问题。group_id) 等接口将client_id绑定到uid或者gid上,通过Gateway::sendToUid($uid, $data) 或 Gateway::sendToGroup($gid, $data)来
发
送
数
据
分享
webman+vue3开
发
的类似oos的附件图片资源管理系统,适合中小型项目使用
说明:代码还在整,介绍先行
发
布。 # 一、简要说明: EasyFileDock(简称:EFD) - 是一个开源的文件资源管理平台(本地部署的简易版OOS),它提供了一个简单易用的界面。它支持多种文件格式,并且可以与不同的系统和应用程序通过接口
进
行交互集成,适用于中小型系统上传的图片文件与主程序分开管理、和多个项目共用同一个附件管理系统的需求。#
二
、开
发
说明: 后端:webman 前端:vue3 + element plus 优点: 1、私有化部署(支持
二
进
制
文件直接部署,支持独立域名部署和作为域名下
二
级目录部署) 2、一个附件系统支持N个项目对接 3、完全开源 4、安装指定的php-sdk(目前只有php的,且为webman系统实践过的,其他的框架没试过)、代码新增对应的额逻辑调用sdk的方法,附件系统有开放api对接,理论上支持所有开
发
语言对接#
二
、上图: #### 1、登录 !
« 上一页
1
...
65
66
67
68
69
70
71
72
...
436
下一页 »
« 上一页
68
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝