想实现一个web的终端,最开始用的ssh2这个扩展,但是结果只能用exec执行命令,不能达到我想要的效果,我想要的是交互式的终端,之后又找了一个php的包
phpseclib
用里面的ssh2协议用得很迷...不知道为什么read总是要等很长一段时间,不知道是不是我的姿势不对,暂时的放弃,然后仔细看了一下官网的ss2扩展文档,发现有一个ssh2_shell
命令,于是开始研究,感觉可以达到交互式终端的效果,如果再不行...可能得去实现ssh协议了....贴出代码如下
有一点不足的地方就是不能使用select方法来,本来想用swoole_event_add
加入监听的=_=,不过现在这样..大不了开一个进程来处理吧...或者再看看还有没有什么其他不错的方法
$connection = ssh2_connect('localhost', 22);
if (!ssh2_auth_password($connection, 'user', '***')) {
die('error user');
}
$stdio_stream = ssh2_shell($connection);
stream_set_blocking($stdio_stream, true);
if (pcntl_fork()) {
while ($char = fgetc(STDIN)) {
fwrite($stdio_stream, $char);
}
} else {
while (true) {
echo(fread($stdio_stream, 10000));
}
}
文章评论
现在怎么样了?

现在解决的怎么样了?
@ideasource 还是选择用多进程的方式来处理了