workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
分享
分享一个使用php
发
起websocket的ws协议链接的类
/ 还有后续帧 const OPCODE_CONTINUATION_FRAME = 0; // 文本帧 const OPCODE_TEXT_FRAME = 1; //
二
进
制
帧sock); if ($meta['timed_out']) { throw new SocketRWException('向服务器
发
送
数
据
超时', __LINE__); } throw new SocketRWException('无法
发
送
数
据
,socket连接已断开?'stream_socket_shutdown($this->sock, STREAM_SHUT_RDWR); } /** * @param string $data 要
发
送
的
数
据
* @param int $opCode
发
送
的
数
据
类型 WebSocketClient::OPCODE_TEXT_FRAME 或 WebSocketClient::OPCODE_BINARY_FRAME
问答
请问如何做到接收http请求,推
送
mqtt消息?
connect(); }; $worker->onMessage = function(TcpConnection $connection, $args) { global $mqtt; // 已经处理请求
数
此处报错 $mqtt->publish($topic, json_encode($data)); $connection->send('Status Code: 200 OK'); // 如果请求
数
达到mqtt->close(); Worker::stopAll(); } }; Worker::runAll(); ``` 业务大概是:需要一个http服务端用来接收http的请求,拿到
数
据
经过处理以后,在用mqtt
进
行推
送
。服务端启动时不会报错,但是当
进
程达到设定好的5000次执行关闭并重新开启的时候,由于mqtt还没连接上,就收到http请求并且执行mqtt->publish()了,导致mqtt报错,No connection
问答
救命啊,同样代码Linux和window处理不同
,方便内部系统推
送
数
据
,Text协议格式 文本+换行符 $inner_text_worker = new Worker('tcp://0.0.0.0:5678'); $inner_text_worker,向uid的页面推
送
数
据
$ret = sendMessageByUid($uid, $buffer); // 返回推
送
结果 $connection->send($ret$connection->uid = $data; /* 保存uid到connection的映射,这样可以方便的通过uid查找connection, * 实现针对特定uid推
送
数
据
connection->uid)) { // 连接断开时删除映射 unset($worker->uidConnections); } }; // 向所有验证的用户推
送
数
据
,向uid的页面推
送
数
据
$ret = sendMessageByUid($uid, $buffer); // 返回推
送
结果 $connection->send($ret
问答
在多
进
程的时候如何获取所有
进
程的连接
数
?
$worker->connections 这样只能获取到当前
进
程的连接
数
。
问答
关于rawBody()原始请求post包体的
数
据
来源
#### 问题描述 一般获取php包体的
数
据
来源可以使用file_get_contents('php://input'), 我看了webman的原始包体请求方式$request->rawBody(),文件位置在Protocols\Http\Request.php中,其中构造函
数
$buffer的
数
据
哪来的,,也没看见实例化的地方,这个
数
据
是什么时候注入的;
问答
app用h5长时间
发
送
LBS地址要怎样实现?
项目是用PHP的CI做的后台,前端是h5页面,每半小时用ajax
发
送
LBS到服务器,要做成APP,是不是要用socket.io?
问答
workerman的
二
进
制
怎么玩啊,怎么封包,怎么解包啊
问答
关于判断一个请求的head头是否
发
送
完毕\r\n\r\n的问题
在workerman中,监听一个http地址,源码Protocols/Http.php中有判断请求的headr头是否
发
送
完毕的方法 [attach]1462[/attach] 但是如果我指定一个head头的值为\r\n\r\n,然后却判断不出来,还是在head头
发
送
完毕的\r\n\r\n中将strpos($recv_buffer, "\r\n\r\n")判断成了true nginx和socketn\r\n都不行 [attach]1463[/attach] 请求方法 [attach]1464[/attach] workerman中的模拟方式类似,只不过将fread函
数
的大小调成了
问答
Workerman如何链接
数
据
库服务
已经安装了mysql组件,对应的
数
据
库服务端口也开了,要在Events类里面去链接的
问答
webman
数
据
库操作批量多条
数
据
写入批量更新的方法upsert提示Call to undefined method
#### 问题描述 我想批量操作
数
据
库更新一下相关字段的值,如果
数
据
不存在就插入,存在就更新字段,使用了model下的方法,却提示未定义。或者有没有替换的方法,
数
据
量有好几千,不想使用foreach来执行,请教各位大佬有没有好办法。
问答
请求是怎么打到不同的worker
进
程的
#### 问题描述 版主请帮忙解惑 1.我测试的是workerman 2.实例化Worker对象,schema:http,端口号9999,设置4个
进
程,端口复用参
数
默认false,设置onMessage回调,回调里面打印worker对象的id,然后启动脚本 3.在多个浏览器当中访问,chrome,Microsoft Edge里面访问,打印出来的worker对象的id不同 4.请求被不同的worker
进
程处理,但是没有在workerman中没看见master
进
程调度worker来处理请求 5.那请求是怎么打到对应的
进
程上的 6.因为之前我fork处理
数
据
的时候都是在master
进
程将任务
发
给子
进
程,每个子
进
程处理部分
数
据
,所以对于没看见master调度worker来处理请求感到困惑 7.master
进
程接受新的连接,代码里面没看见分
发
给哪个
进
程处理的 ``` $worker = new \Workerman\Worker
分享
提一点希望,在B站,腾讯课堂,网易课堂多
发
视频教程,促
进
webman
发
展,
提一点希望,在B站,腾讯课堂,网易课堂多
发
视频教程,促
进
webman
发
展,视频讲座,比文档更加易懂,能够让更多普通人学习webman,
进
而促
进
促
进
webman
发
展。我们看到许多国产如thinkphp、织梦等产品,都是这样
发
展壮大的。
问答
GatewayWorker
同一协议如何监听多个端口
我就做了一个
GatewayWorker
的项目叫EAPP,目前只监听了10001端口,现在有个需求需要不复
制
EAPP的情况下监听10001~10010一共十个端口,请问一下这样要如何设置
问答
无法获取multipart/form-data boundary提交的POST
数
据
问题描述 我用Http请求提交Content-Type: multipart/form-data; boundary=-------------------------7dvisualgetfile这样的
数
据
给webman,然后通过$request->post()获取不到post
数
据
,是空的 请求头信息: Content-Type: multipart/form-data; boundary=-------------------------7dvisualgetfile Post
数
据
: ---------------------------7dvisualgetfile Content-Disposition->post('HtmlCode'); return response(json_encode($PostData)); } ``` #### 重现问题的步骤 获取到的post
数
据
是空的
问答
tdengine
数
据
库有大佬弄了orm的没
tdengine
数
据
库有大佬弄了orm的没
问答
请教大佬们两个问题:redirect 和 BusinessException
#### 问题描述 ##### 问题一 重定向方法`redirect(url)` 能否在 `控
制
器类` 的父类中可实现跳转(文档是说只能在中间件或控
制
器中可跳转) ```php //基类 abstractif($flag) { return redirect(url); // 这里是不能跳转的 } } } //控
制
器类 class Index extends Base { publicreturn redirect(url); //这里跳转是正常 } } ``` ##### 问题
二
业务类 BusinessException,当前只有传递两个参
数
,怎么改造可以传递多个参
数
,能返回如下的json
数
据
格式(**或者返回能指定视图模板更灵活**): ```php //改造后能实现的调用 ChangException("信息", 200, ['url'=>'https://www.workerman.net/']) //返回给终端 {"code":200, "msg":"信息", data:['
数
组']} ``` **请教下大佬们是否好实现,谢谢!
问答
Channel组件出现报错,unserialize(): Extra data
#### 问题描述 Hi,walkor,分布式部署websocket服务时使用Channel组件
进
行通讯,
发
送
数
据
时意外出现错误 打印了unserialize($data)中的$data
数
据
,
数
据
如下图所示
问答
windows使用event扩展没有出现256连接限
制
客户端连接测试代码 经验:不要使用浏览器测试,浏览器限
制
了websocket请求连接
数
量为256,所以使用代码测试 <?php require_once __DIR__ . '/..6000多个就没有测试了,请问这样是否代表没有连接
数
量限
制
了?windows使用经验:在使用webman时,开启多个端口监听,使用nginx代理转
发
请求到不同的端口,使用压测工具测试效果优秀。linux多
进
程能均衡业务,windows可以使用类似的方式,用nginx代理转
发
到开启多个端口的业务实现相同效果。websocket服务器如果能突破连接限
制
,也使用同样的方式,开启多个端口监听,分散业务请求,预测也能达到生产可用的效果
问答
进
入deamon模式后
数
据
库报Error while sending QUERY packet
用debug模式运行时没有任务问题,但是只要
进
入deamon模式, mysql就会报> mysql_select_db Error while sending INIT_DB packet.
问答
报与
数
据
库端口冲突问题
#### 问题描述 报与
数
据
库端口冲突问题 stream_socket_server(): Unable to connect to tcp://127.0.0.1:3306 (Address already'lanIp' => '127.0.0.1', 'startPort' => 4300, //不能使用3300段端口号,会与
数
据
库冲突
« 上一页
1
...
83
84
85
86
87
88
89
90
...
451
下一页 »
« 上一页
86
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝