gpt4 book ai didi

ios - NMSSH for iOS - 监听和解析 channel 中的数据

转载 作者:行者123 更新时间:2023-12-02 02:13:19 25 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序,它将获取用户的一些输入并使用 SSH 和服务器确认将其发送到服务器。发送工作正常,但无法实现服务器端的监听。

  1. 向服务器发送命令即可。我可以在服务器端确认检查。
  2. 如何处理来自服务器的确认(继续监听)数据。
  3. 我想保持 session 一直持续到用户决定为止。
  4. iOS 应用商店合规性 - 应用商店是否存在任何合规性,会限制设备和服务器之间保持连接(特别是在后台模式下)。
NMSSHSession *session = [NMSSHSession connectToHost:@"127.0.0.1:22"
withUsername:@"user"];

if (session.isConnected) {
[session authenticateByPassword:@"pass"];

if (session.isAuthorized) {
NSLog(@"Authentication succeeded");
}
}

NSError *error = nil;
NSString *response = [session.channel execute:@"ls -l /var/www/" error:&error];
NSLog(@"List of my sites: %@", response);

BOOL success = [session.channel uploadFile:@"~/index.html" to:@"/var/www/9muses.se/"];

[session disconnect]; //of course I want to keep the connection on all the time.

关于 SO Stream of data through NMSSH 的帖子使用 NMSSH shell 解决了问题,导致 [NMSSH Issue 20]但是,但这对我的情况没有帮助。

我看到的关于这个库实现的教程和帮助非常少,没有得到正确的方向。

最佳答案

以下来自 NMSSH 图书馆团队的回复。我刚刚尝试过并且有效,我将更新与其他查询相关的答案。

GitHub 上的 NMSSH ( Issue No. 143 ) 部分也有很多资源可供探索此库。

当 channel 处于 shell 模式时(请参阅 startShell:),会调用 NMSSHChannelDelegate 的方法,但方法execute:error: 在命令模式下使用 channel 。 session:didDisconnectWithError: 不会被调用,因为您没有断开 session 。请注意,session 会在 serverConnect: 结束时释放,您应该将 session 存储在 CustomViewController 的一个属性中。

我的反馈如下内嵌。

我使用了 NMSSH 的另一个分支 AsyncAPI 来异步发送或接收数据,特别是现在可以无缝发送多个命令。

  1. 向服务器发送命令即可。我可以在服务器端确认检查。
  2. 如何处理来自服务器的确认(继续监听)数据。
    • 使用 AsyncAPI 进行排序
  3. 我想保持 session 一直持续到用户决定为止。
    • 每 15 秒向服务器发送一次心跳类型的一个字符虚拟命令,以保持连接处于事件状态,直到用户断开连接。
  4. iOS 应用商店合规性 - 应用商店是否有任何合规性,会限制设备和服务器之间保持连接(特别是在后台模式下)。
    • 对于我的情况来说不再重要了,因为在循环中发送一个字符保持连接处于事件状态(几行计时器黑客就完成了这项工作。

关于ios - NMSSH for iOS - 监听和解析 channel 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31336795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com