概述
1.国外服务器连接不上Cat服务器
我们当时全球各地都有服务器,在搭建好Cat服务器后,大陆及东南亚的服务器可以正常的连接Cat,不过像欧洲、北美这种服务器缺连接不上。查看Cat客户端的日志错误如下:
[10-21 23:59:54.771] [INFO] [ChannelManager] router config changed :****:2280;
[10-21 23:59:54.771] [INFO] [ChannelManager] start connect server/****:2280
[10-21 23:59:54.871] [ERROR] [ChannelManager] Error when try connecting to /****:2280
[10-21 23:59:54.871] [INFO] [ChannelManager] Error when init CAT server /****:2280;
[10-21 23:59:54.871] [INFO] [ChannelManager] start connect server/****:2280
去找Github上找相似的问题,都说什么我的配置项有问题,我又疯狂检查配置项,很烦;
后来在官方文档中发现,在Cat官方文档中指明了,Cat是只建议在内网中进行通讯。可他也不说为什么只建议在内网中通讯;
随后想到,是否是Cat客户端源码的问题,网络连接都会设置超时时间的,随后查看Cat的源码,通过字符串搜索,定位到 Error when try connecting 错误日志是从哪里打印出来的;
最后在ChannelManager类中发现了他链接Cat服务器的代码
private ChannelFuture createChannel(InetSocketAddress address) {
m_logger.info("start connect server" + address.toString());
ChannelFuture future = null;
try {
future = m_bootstrap.connect(address);
future.awaitUninterruptibly(10, TimeUnit.MILLISECONDS); // 10 ms
if (!future.isSuccess()) {
m_logger.error("Error when try connecting to " + address);
closeChannel(future);
} else {
m_logger.info("Connected to CAT server at " + address);
return future;
}
} catch (Throwable e) {
m_logger.error("Error when connect server " + address.getAddress(), e);
if (future != null) {
closeChannel(future);
}
}
return null;
}
我真是套他猴子,这里链接时间居然是10ms,难怪海外的连接不上;
随后反编译客户端jar包,修改时长为100,重新打包,上线,解决!
最后
以上就是负责羽毛为你收集整理的Cat使用中的一些坑的全部内容,希望文章能够帮你解决Cat使用中的一些坑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复