workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
分享
Workerman 自定义的协议如何解决粘包拆包
经过打印日志发现,两端接收到的包都有出现
不
是
事
先约定好的格式,这也就是 TCP 的粘包拆包现象。这个的解决方法很简单,网上也有很多,但是这里是想用自己实现的协议解决,暂且放到后面来说。但是这个传递到 PHP 服
务
端接收时,字符串前 4 个字节就是显示
不
出来,用过很多方法进行转换都取
不
出来。Input 方法 在这个方法里,可以在服
务
端接收前对数据包进行解包,检查包长度,过滤等。返
回
0 就将数据包放入接收端的缓冲内继续等待,返
回
指定长度则表示取出缓冲区内长度。# 粘包拆包产
生
现象 由于 TCP 是基于流的,且因为是传输层,在上层的应用通过 socket 套接字 (理解为接口) 通信时,他
不
知道传递过来的数据包开头结尾在哪。拆包测试 拆包模拟只需要将一个数据包分成两次发送,看看服
务
端接收的时候能
不
能显示或者说能
不
能按约定好的格式正确显示。 !
问答
webman通过代码restart
开发的)php start.php start -d 守护模式运行的,有些时候改了部分代码想直接通过访问某个控制器(webman项目内的一个链接)去实现php start.php restart -d的
效
果,以方便快速重启整个服
务
,目前是通过登录服
务
器去输入命令行实现重启,感觉挺麻烦的。
问答
定时器中间 ,做延时操作,用sleep好像
不
行,测试无
效
果
问答
[
不
懂就问]关于webman和workerman swoole的几个问题
1、转GO 2、基于常驻型的框架 3、PHP8 JIT 1、忽略了,并
不
是
不
想转型GO,而是从0开始自己玩玩之类的没问题,但公司基本都是PHP开发的,转GO后大家都没经验遇到BUG也
不
好解决,而且初识重申一遍,
不
是引战,业
务
场合是API接口开发,基本功能涉及鉴权->路由->redis->数据库。由于这里
不
是框架比较,所以详细的
不
说太多。如果觉得是1周时间学习swoole
不
够,那1天学习webman真的也
不
多。可能某些场景SWOOLE会超过webman,但我需求的场景,确实是webman高出swoole很多很多倍。如果是准备转型webman/workman,请问两者的区别是仅仅特定场合
不
一致吗?性能是差
不
多的吧? 针对PHP各版本,WEBMAN/WORKMAN是否有相关测试性能?如
生
产环境直接用 -d 启用,是否会有守护进程?
问答
php 调用一个 Worker的内部端口 要20秒才能返
回
状态
$connection) { $connection->send($data); } // 返
回
推送结果
问答
AsyncTcpConnection调用
不
到tast的workerman
$task_worker->onMessage = function($connection, $task_data) { //这下面的代码一直
不
会执行> ``` 调用代码: ```php // 与远程task服
务
建立异步链接,ip为远程task服
务
的ip,如果是本机就是127.0.0.1,如果是集群就是lvs的ip $task_connectiontask_connection, $task_result) { //这下面的代码一直调用
不
了msg) { //这里也没有报错 }; // 执行异步链接 $task_connection->connect(); ``` 代码如上,
不
知道哪里出问题了, 两个onMessage方法都一直
不
会被调用。
分享
这是一个简单的计划任
务
webmen插件
一个简单的webman插件:计划任
务
没什么依赖 下载解压到插件目录 执行命令安装:php webman app-plugin:install wz_task 没用数据库表 用得是文件 存的任
务
配置
不
行就放心删除插件文件 这样,应该是
不
会对你的项目有什么污染。 你需要在job文件夹下照着Test.php写类就行 Test.php是这样字: !
分享
这是一个简单的计划任
务
webmen插件
一个简单的webman插件:计划任
务
没什么依赖 下载解压到插件目录 执行命令安装:php webman app-plugin:install wz_task 没用数据库表 用得是文件 存的任
务
配置
不
行就放心删除插件文件 这样,应该是
不
会对你的项目有什么污染。 你需要在job文件夹下照着Test.php写类就行 Test.php是这样字: !
问答
请问在mvc中调用GatewayClient发送数据前,有方法判断GatewayWork是否正常吗?
比如没启动,或者registerAddress错误连接
不
上之类。在GatewayWork没启动时,调用GatewayClient发送数据会因为连接
不
上registerAddress产
生
致命错误,请问有什么方法可以先做判断吗?还是只能写在try里做异常处理?我这的场景是GatewayWork开启时,功能全部开启用户体验比较好;GatewayWork停止时少掉一些功能但
不
影响原来的mvc业
务
。
问答
gatewaywoker分布式部署?
现有AB两个站 在同一个服
务
器下 把gateway woker 部署到了A上 现在B可以与A连接握手成功 消息也可以发送过去 就是b接受
不
到a推送
回
来的消息 请问该怎么处理呢?
问答
怎么获取客户端真实IP?
php var_dump( $request->getRealIp(), $request->getRemoteIp(), $request->getClientIp() ); ``` #### 都
不
正确最后用了```php $region = explode(",",$request->header('x-forwarded-for')); var_dump($region[0]); ``` 宝塔服
务
器,在线等大佬
回
复
问答
关于-webman,异步任
务
1.在swoole中,如果处理耗时等类似业
务
,可以将任
务
放入队列或者扔给taskWorker执行 2.在webman中,如果想执行类似业
务
,应该如何操作呢? 3.如果交给自定义进程,应该如何操作呢?
问答
新手求助,稳定运行了22天的socket服
务
,突然连接
不
上(超时)
socket服
务
使用(gatewayWorker3.0.7), gatewatClient3.0.0 稳定运行了22天, 今天突然出现大面积连接超时的问题。
问答
Gateway::getAllClientIdList() 在服
务
异常时会报错
接口返
回
关键信息如下: { "msg": "foreach() argument must be of type array|object, bool given", "code": 500
问答
修改workman聊天室的前段代码好像无
效
的啊
RT,修改Applications/Chat/Web/index.php这个文件无论PHP代码还是前段代码都是
不
起作用的啊?那如果我想加入uid检测之类的机制然后决定否有权限进入聊天室
不
是
不
能用了?
问答
【已解决】怎么在大文件下载完成后执行一些操作 response()->file
'/ceshi.zip') ``` 怎么在大文件下载完成后删除
生
成的临时文件ceshi.zip -------------------解决方案--------------------------------- 目前除了定时任
务
和队列暂没有其他解决方案
分享
🎉 PHP 社区重大新闻,我们已经开始开发官方 PHP MCP SDK!
> 💡趣味
事
实:MCP 的联合创造者 `David Soria Parra` 曾是 `PHP 5.4` 和 `5.5` 的发布经理,同时也是一位长期 PHP 核心贡献者。通过MCP,开发者可以轻松构建AI驱动的应用,让AI代理能够安全、高
效
地访问和处理数据,打破传统的信息孤岛问题。**跨平台兼容性**:SDK将支持PHP 8.1及以上版本,确保在
不
同环境(如Linux、Windows)下的稳定运行,同时支持STDIO和HTTP等多种传输方式。 4.* **初步测试**:在PHP 8.1环境下完成了STDIO传输的测试,验证了基本的客户端和服
务
器功能。官方PHP MCP SDK的开发
不
仅展示了PHP语言在现代技术领域的活力,也为开发者打开了与AI技术深度融合的大门。
问答
webman 多应用 绑定
不
同域名
安装 大佬编写的多域名控制插件 地址:https://www.workerman.net/plugin/11 我对于webman的使用方式是nginx处理静态文件 webman处理动态请求 以达到更高的
效
率-e $request_filename){ proxy_pass http://127.0.0.1:8787; } #设置域名
不
加这个webman获取
不
到用户IP proxy_set_header Host $host; #设置用户IP
不
加这个webman获取
不
到用户IP proxy_set_header X-Real-IP $remote_addr; #这个我也
不
知道干啥的反正加上就对了 proxy_set_header REMOTE-HOST $remote_addr; #
不
需要关闭nginx缓存删掉下面这行 proxy_cachenginx也会缓存这个请求(这个时候请求就到
不
了webman中),当浏览器缓存了这个请求时nginx是完全没有必要去缓存的毕竟我们要的只是让他转发) #伪静态文件这样写 假设有应用 A 绑定域名 www.a.com
问答
webman是否有当前请求的全局缓存
.; } return self::$cache; } } ``` 业
务
逻辑判断当前模型缓存是否存在 如果存在则直接返
回
模型缓存
不
存在则从数据库或Redis中获取
不
用每次从Redis或数据库中获取因为是FPM模式 所以业
务
完成后静态变量自动清空
不
会相互影响 请问webman需要如何实现?
问答
一台服
务
器部署2个gatewayworker项目,出现SendBufferToWorker fail
一台服
务
器上部署2个
不
同的项目,
不
过这2个项目都使用GatewayWorker框架,2个项目同时启动时,就出现了BusinessWorker和Gateway之间的socket链接没有建立,如果单独启动一个项目就可以
« 上一页
1
...
106
107
108
109
110
111
112
113
...
480
下一页 »
« 上一页
109
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝