欢迎您访问我的笔记本站旨在于记录一些平时工作中遇到的一些问题和解决方法,方便查阅,部分内容来源于网络,如有侵权请联系我删除
  • 微信微信
您现在的位置是:首页 > PHP后端

关于php ssh2_connect函数设置超时时间-[原创]

日期:2019-08-08 10:27:03 作者:tanyi 来源:我的笔记 浏览:1140 次
公司云平台添加服务器的地方如果服务器ip不正常会导致ssh2_connect这个函数执行很长一段时间才结束,造成程序假S的现象,于是公司方面要求将整个连接时间做一个控制

最终要求是在添加过程中对服务器的连接过程不超过10秒,换句话说10秒的时候如果还没能连接就断开连接操作立马给客户端予以响应,这样以免造成客户端假S现象。

关于php ssh扩展也不是很熟练,官网看了下ssh2_connect这个函数貌似也没有可直接设置超时时间的参数选项,于网上搜了半天,很遗憾,关于这方面的文章很少,而且都是说一些废话或者N年前某人提问下面零回复的文章。

最后终于在https://stackoverflow.com这个网站上一个外国人跟我遇到一样的问题,下面也有大佬给出了很实用的解决方法。从这位大佬的回答中了解到,php ssh2_connect 是通过socket_connect去工作,所以归根到底我们要去设置socket_connect的超时时间,socket_connect依赖于php ini配置参数default_socket_timeout,默认设置为60秒,所以最终解决方案是在执行ssh函数的时候对socket_connect设置指定的超时时间,下面上代码:

ini_set('default_socket_timeout', 2); //设置2秒超时

$connection = ssh2_connect('1.1.1.1');

不得不说外国人的干货是真的多。

提交评论
评论列表