我在 iPad 上买过两个:
- Redis Touch(6 元)
- RedisFly (24 元)
但这两个都不支持 SSH 登录,让我很尴尬。
第一步,分析:实现设想
没考虑原生方式,原因很简单,不会。
最初的设想是直接封装一个 Hybrid App,用 js 实现。 但搜索了一圈,好像没有什么方案可以直接在前端去连接 ssh 服务器的。
那么就需要服务器作为中转,将客户端的请求采用 ssh 连接进行透传,然后保持连接,并抛出 RESTful 或 Websocket 接口。
第二步,应用架构
最终用户使用的网络传输过程大概是这样子的:
客户端->应用服务器: 普通接口调用
应用服务器->用户服务器: ssh 连接 redis
Note right of 应用服务器: 抛出接口
用户服务器-->应用服务器: 返回结果
应用服务器-->客户端: 返回结果
第三步,筹备
TODO List:
- 设计 UI 原型
- 服务器端 ssh 连接
- 服务器端接口设计
- 开发客户端上层应用
- 进行测试发布
- 服务器优化,以允许更高并发客户端连接
参考资料:
- Medis (Electron 封装的 OS X 客户端): https://github.com/luin/medis
- Node.js 实现原理: https://stackoverflow.com/questions/38689707/connecting-to-remote-ssh-server-via-node-js-html5-console
P.S.
由于工作的原因,我个人可能并没有太多的精力去参与所有【创意 iDeas】分类下的项目。如果你对这个项目有兴趣,可以微博或 Github 上与我联系,或者直接略过我自行去完成该 APP 的开发。