gateway workers 例子使用 连上后了,客户端没发消息后就断了

3239508152

gateway workers 例子使用 连上后了,客户端没发消息后就断了
但是没触发到onclose(),客户端没收到断开后反馈的消息

这样是正常的吗?

客户端测试是:telnet xx.xx.xx.xx 10069

stay_gateway.php 如下

use \Workerman\Worker;
use \Workerman\WebServer;
use \GatewayWorker\Gateway;
use \GatewayWorker\BusinessWorker;
use \Workerman\Autoloader;

// 自动加载类
require_once __DIR__ . '/../../vendor/autoload.php';
$gateway = new Gateway("text://0.0.0.0:10069");
// gateway名称,status方便查看
$gateway->name = 'cdbAppGateway';
// gateway进程数
$gateway->count = 4;
// 本机ip,分布式部署时使用内网ip
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口 
$gateway->startPort = 2900;
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:1238';
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}
5162 12 0
12个回答

walkor

onClose里都断开了,Gateway::sendToClient 已经收不到了

  • 暂无评论
3239508152

请问如何在业务系统里 发数据给客户端

先保存clientid
在业务系统里的文件里:
use \GatewayWorker\Lib\Gateway;
Gateway::sendToClient
这样是否可行?

还是得设置路由,另外文件处理?

  • 暂无评论
walkor
  • 暂无评论
3239508152

你好。请问服务端可以不自动关闭吗?是默认有到了时间自动关闭的吗?
我这里用 客户端:telnet xx.xx.xx.xx 10069 测试了下,但是过了一个时间他关掉了,数据发送给服务端没反馈

  • 暂无评论
walkor

根据你提供的信息看服务端并不会主动关闭链接。
应该是链接长时间不通讯被路由节点或者防火墙给断掉了,需要加心跳维持链接,防止链接由于长时间不通讯而被路由节点/防火墙断开。

心跳设置http://doc2.workerman.net/326139

  • 暂无评论
3239508152

请问,我在业务系统里使用了GatewayClient, 我这个端口和IP设置对了吗?

[attach]671[/attach]

现在start_register.php:

[attach]672[/attach]

start_gateway.php:

[attach]673[/attach]

  • 暂无评论
walkor

GatewayClient和GatewayWorker如果都在同一台服务器是对的

  • 暂无评论
3239508152

你好。请问下就是在使用这个GatewayClient的时候,如果业务系统里保存了$client_id,
还需要先绑定uid和$client_id,再getClientIdByUid,sendToUid的方式发送吗?
直接发送 Gateway::sendToClient($client_id, $data); 是不是也是可以的?

  • 暂无评论
walkor

用法与GatewayWorker的接口用法相同。
保存了$client_id 直接Gateway::sendToClient($client_id, $msg);就发送过去了

  • 暂无评论
3239508152

谢谢你

  • 暂无评论
3239508152

walkor大神,现在是这样问题:
gateway 和businessworker都是4个进程
客户端每一分钟发一个心跳,客户端达到300个时,就不能在onMessage里用Gateway::sendToClient发数据,我是在onMessage里发数据和保存数据到数据库
但是talent 模拟onConnect是走的,都在同一台服务器

  • 暂无评论
3239508152

服务器 内存利用率为80%,cpu4%

  • 暂无评论
年代过于久远,无法发表回答
🔝