博客列表 >关于php ssh2_connect函数设置超时时间

关于php ssh2_connect函数设置超时时间

我的笔记
我的笔记原创
2019年08月09日 17:18:361508浏览

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

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

最后终于在https://stackoverflow***这个网站上一个外国人跟我遇到一样的问题,下面也有大佬给出了很实用的解决方法。从这位大佬的回答中了解到,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');

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


原文链接


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议