我知道有一个使用WebSockets(http://novnc.com)的VNC实现,但仍然需要服务器。我希望创建一个简单的客户端JavaScript(没有Flash)连接到运行SSH的端口。我猜测WebSockets是唯一的方法,因为它做TCP。任何示例代码?还有别的吗?
答案 0 :(得分:16)
抱歉,鉴于您的约束(仅限客户端Javascript),无法连接到普通的旧SSH服务器。
WebSockets不是普通的TCP。它是一个框架协议,在客户端和服务器之间具有类似HTTP的握手,包括原始策略。
Flash可以建立纯TCP连接,但它也有源策略实施。它的方式是通过在端口843上建立到同一服务器的连接,并要求一个包含原始策略的特殊XML文件。 如果您愿意稍微放宽约束,以便您愿意在服务器(任何服务器)或客户端上运行通用WebSockets到TCP代理,那么您可以执行您想要执行的操作。 noVNC包括一个C和python WebSockets到TCP代理:http://github.com/kanaka/noVNC/tree/master/utils/。
您可能会觉得有用的其他信息:
当前的WebSocket草稿:http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76
此处描述了运行Flash策略服务器(带有socat的Linux / UNIX)的简单(不安全)方式:http://github.com/kanaka/noVNC/blob/master/docs/flash_policy.txt
有关Flash政策文件的详情:http://code.google.com/p/doctype/wiki/ArticleFlashSecurity
答案 1 :(得分:4)
对于仍在搜索的人, paramikojs 可能就是答案。
我目前遇到类似的问题:我需要一个SSH JS客户端实现,我需要它获得BSD许可。唉paramikojs似乎是GPL许可。
答案 2 :(得分:3)
您可以查看serfish。这是访问SSH服务器的解决方案。但是,如果您在与ssh相同的服务器上托管Web应用程序,则还有其他解决方案,例如shell in a box。
答案 3 :(得分:1)
使用具有完整网络支持的Linux模拟器(如伟大的OpenRISC模拟器jor1k)绝对可以实现。
请注意,我已经创建了browser-tools.net,这是一组来自不同项目的浏览器内工具。