workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
gatewayworker
tcp 粘包问题请教
目前公司的充电桩项目用到了
gatewayworker
,但是目前遇到了沾包问题,就是两条报文沾在了一起。不知道咋处理,急急急 ```php /** * 当客户端
发
来消息时触
发
* @param int $client_id 连接id * @param mixed $messagedata_charge_qianzhui =substr($data,0,2);//前缀 var_dump($data); } ``` 目前充电桩报文是十六
进
制
数
据
,所以用bin2hex函
数
转
问答
GatewayWorker
做消息推
送
的问题[已解决]
现在分别建立了socket和websocket的
GatewayWorker
.然后想socket这一端收到
数
据
后,将
数
据
推
送
到websocket,不过每次都new Gateway觉得好麻烦,有没有什么方法,可以复用刚刚的new Gateway嘛?
问答
我在使用gatewayWorkman 现在有个需求 就是 业务处理完成后要将
数
据
发
送
到另一台服务器
#### 我在使用gatewayWorkman 现在有个需求 就是 业务处理完成后要将
数
据
发
送
到另一台服务器 我该怎么处理?我想咨询下 业务处理完成后能不能通过网关 建立多个tcp将
数
据
发
送
到指定的服务器 并接收返回信息 不知道怎么实现怎么写
问答
windows7 下 Websocket
发
送
数
据
不正常
windows7 下 Chrome ws连接Websocket 服务端无法接收到
数
据
,wss 才能正常接收
问答
GateWayWorker
如何控
制
流量
客户端
发
送
消息密集的话,服务端就会报SendBufferToWorker fail.May be the send buffer are Overflow.请问如何增加流量控
制
?```php // gateway
进
程,这里使用Text协议,可以用telnet测试 $gateway = new Gateway("tcp://0.0.0.0:8282"); // gateway名称,status方便查看 $gateway->name = 'YourAppGateway'; // gateway
进
程
数
$gateway->count = 4; // 本机ip,分布式部署时使用内网ip
问答
linux 使用守护
进
程方式启动后无法使用
数
据
库
很奇怪的一个问题,采用守护
进
程的方式运行程序以后,退出远程控
制
,程序不再访问
数
据
库,不知道是哪里出了问题
问答
GatewayWorker
中Events类如何实现消息
数
据
存储?pdo?redis?
GatewayWorker
中Events类如何实现消息
数
据
存储?pdo?redis?
问答
Gateway可以设置
发
送
消息的最大包长吗?
能不能设置gateway给客户端
发
送
消息的最大包长呢?如果
发
送
的
数
据
超出这个设定值,则分包
发
送
。ps:分包
发
送
的话会不会将上次
发
送
的一部分
数
据
覆盖掉呢?
问答
想实现一个网页
发
起请求,
发
送
数
据
给智能设备,并获取返回的模式,不成功,请教。
目的:网页js
发
起ws请求链接服务器,ws经过处理后调用 sendMessageByUid TCP链路
发
送
数
据
给智能设备,等待智能设备响应后将响应结果返回网页客户端。目前问题:debug模式运行观察,sendMessageByUid 已经运行,但是没有向设备下
发
任何
数
据
。 如何智能设备
数
据
返回网页客户端,思路也还不是很明确。。**********/ $ws_worker = new Worker('websocket://0.0.0.0:5678'); $ws_worker->count = 1; // 当有客户端
发
来消息时执行的回调函
数
>uidConnections = array(); $tcp_worker->onConnect = function($connection) { // }; // 当收到客户端
发
来的
数
据
后返回uid = "m"."10001"; $tcp_worker->uidConnections = $connection; // 这里如何想ws客户端返回信息 }; // 针对uid推
送
数
据
问答
webman定时器
发
送
SSE
数
据
,加了判断,就
发
送
不了
#### 问题描述 额,下面代码 客户端只能收到 $emptyEvents
数
据
,一直收不到 $endpointEvents 的
数
据
,如果把if 和 else 的代码对调,那么客户端能收到$endpointEvents但是收不到空包$emptyEvents
数
据
这是为何 ```php $id = Timer::add(1, function () use ($connection, &$id
问答
手机APP使用socket用向
GatewayWorker
发
送
消息后,Events.php里的onMessage回调方法没有被执行,请求帮助。
手机端使用socket向
GatewayWorker
发
送
一个字符串 'abc',
发
现Events.php中的onMessage回调方法没有被执行。尝试过在Select.php的loop方法中把那个$read 给echo出来,
发
现每次手机APP在
发
送
消息时,这里都会输出一个array(36 => NULL),这应该表明客户端确实成功把
数
据
发
送
到服务器了吧
问答
指定客户端
发
送
到客户端 出现错误
数
据
不能
发
送
到指定客户端
指定客户端
发
送
到客户端 出现错误
数
据
不能
发
送
到指定客户端 ```php <?$d; //
发
送
数
据
$res = $task_connection->send ( $bin_data ); } //
发
送
获取测试
数
据
请求 if ($msg == "getmetadata$d; //
发
送
数
据
$res = $task_connection->send ( $bin_data ); } //每秒钟取一次
数
据
if ($msg == "sample"$d; //
发
送
数
据
$res = $task_connection->send ( $bin_data ); } //
发
送
登陆
数
据
if ($msg == "setparam$d; //
发
送
数
据
$res = $task_connection->send ( $bin_data ); } /** *获取统计值 */ if($msg==
问答
GatewayWorker
发
送
POST请求
请问服务端怎么
发
送
post请求?
问答
laravel 、
GatewayWorker
整合问题
app与
GatewayWorker
建立连接 app走http把client_id给laravel,laravel去和
GatewayWorker
交互 那当业务需求主动推
送
数
据
的时候,是开通多一端口,
进
行内部通信吗[attach]764[/attach] 就像上图的7273端口那样
进
行通信吗? 再用这个来
进
行连接stream_socket_client('tcp://内网ip:7273')。这样的话 session那些记录 我是根
据
getSession这些函
数
去处理的 其实我想问 是这种结构去交互吗?
问答
使用
gatewayworker
连续接收智能手表
数
据
,到一定量会自动断开连接和设备重连
使用
gatewayworker
连续接收智能手表
数
据
,到一定量会自动断开连接和设备重连 和智能手表建立长连接后,在手表端
进
行心电检测(我们心电
发
送
的是原始
数
据
,
数
据
量比较大,每次30s检测时间,每秒会
发
送
一组检测
数
据
,总共30组左右),每次在接收到第八组
数
据
之后,连接就会断开,不知道是什么原因 ``` 下面是服务器接收到的心电
数
据
,到第八组 [2024-07-09T08:26:36+08:00][succ]
问答
请问如何对
数
据
库中有
进
有出的
数
据
进
行动态的显示排队号
#### 问题描述 业务场景如下: ##### 有一个用户排队任务表,期间会不断有新
数
据
加入排队,同时也会有
数
据
被踢出排队表(根
据
另外的业务逻辑
进
行),依照先
进
先出的规则。以及如何
进
行分页? * 排好队之后如何在用户端只展示登录用户的
数
据
?> 比如有十条
数
据
,1-5属于A用户,6-10属于B用户,这时候初始排队号是1-10,如果第1条
数
据
被踢出,排队号需要从1开始
进
行重排,变为1-4,5-9这样 #### 为此你搜索到了哪些方案及不适用的原因
分享
分享: 使用workerman实现基于UDP的异步SIP服务器,服务器端可主动
发
送
UDP
数
据
给客户端
udp
数
据
https://www.workerman.net/q/2688 UDP服务器主动向客户端
发
送
消息 https://www.workerman.net/q/4284 直到今天终于使用workerman实现单
进
程或多
进
程方式监听某个UDP端口,主动从平台向客户端
发
送
数
据
并且所有功能均使用workerman的loop功能,能够
发
挥平台最大化性能 当
进
程只有一个时使用 socket 函
数
实现端口监听时,服务器首次收到客户端
发
送
的
数
据
后,能够稳定的向客户端
发
送
约5分钟的
数
据
报文,直到该通信会话被Linux内核丢弃,因此使用UDP
进
行通信,**建议至少60秒
进
行一次双向心跳交互保活**。当使用socket时,服务器首次收到客户端
发
送
的
数
据
后,能够稳定的向客户端长期
发
送
数
据
报文(如果网络中的防火墙或NAT路由器没有将会话过期,应该可以一直使用) 下面直接
发
布代码 ```php <?TCP不一样,只要知道对方端口即可,理论上任意一个
进
程均可从服务器端
发
送
数
据
给客户端 //到公网环境查询本机公网IP,便于生成日志 Channel\Client::on(
问答
wokerman接收socket
数
据
的问题
wokerman接收socket
数
据
的问题 大体看了下之前的提问 ```php use Workerman\Worker; require_once '.Workerman/Autoloader.php'; // 创建一个Worker监听端口,不使用任何应用层协议 $tcp_worker = new Worker("tcp://ip:port");//
数
据
源的ip和端口 // 启动4个
进
程对外提供服务 $tcp_worker->count = 1; // 当客户端
发
来
数
据
时 $tcp_worker->onMessage = function($connection, $data) { // 向客户端
发
送
hello $data $connection->send('hello ' .
问答
如何将 workman 监听接收到的
数
据
传
送
转
发
给别的php框架呢?
我使用 workman 搭建了一个应用,来监听指定端口的 udp 协议
数
据
传
送
。可是,我业务是使用 laravel 框架来实现的,那么我要怎么做才能够将 workman 接收到的
数
据
,再传
送
过去给业务代码呢?
问答
workerman 接收
数
据
的问题 关闭自动重启
/Workerman/Autoloader.php'; $task = new Worker(); //
进
程启动时异步建立一个到www.baidu.com连接对象,并
发
送
数
据
获取
数
据
$task->function($task) { $connection_to_baidu = new AsyncTcpConnection('tcp://****:80'); // 当连接建立成功时,
发
送
http请求
数
据
$connection_to_baidu->onConnect = function($connection_to_baidu) { echo "connectconnection_to_baidu) { $connection_to_baidu->connect(); }; ``` 然后输入了 connect success 但是
数
据
没接收到($http_buffer没
数
据
)
« 上一页
1
...
16
17
18
19
20
21
22
23
...
439
下一页 »
« 上一页
19
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝