Javascript AngularJS:如何实现系统远程?

Javascript AngularJS:如何实现系统远程?,javascript,c#,angularjs,google-app-engine,google-cloud-endpoints,Javascript,C#,Angularjs,Google App Engine,Google Cloud Endpoints,请让我详细说明我的目标是什么 如何从运行windows应用程序系统的my Angular.js应用程序获取远程桌面连接。我的服务器是谷歌应用引擎 到目前为止我的想法: Windows应用程序将截屏并发送到Google应用程序引擎频道API Google应用程序引擎频道API将通知Angular应用程序,并向其发送屏幕截图并显示 这种方法的问题是成本很高而且速度很慢 请求 请提供一些工具、api或制作屏幕共享应用程序的方法。这不是您要寻找的答案,但请阅读任何一种方法 tl;博士 您试图做的不是应用

请让我详细说明我的目标是什么

如何从运行windows应用程序系统的my Angular.js应用程序获取远程桌面连接。我的服务器是谷歌应用引擎

到目前为止我的想法:

  • Windows应用程序将截屏并发送到Google应用程序引擎频道API
  • Google应用程序引擎频道API将通知Angular应用程序,并向其发送屏幕截图并显示
  • 这种方法的问题是成本很高而且速度很慢

    请求


    请提供一些工具、api或制作屏幕共享应用程序的方法。

    这不是您要寻找的答案,但请阅读任何一种方法

    tl;博士

    您试图做的不是应用程序引擎用例,您真的不应该使用应用程序引擎来实现这种解决方案

    长版本:

    • 正如您自己发现的那样,对于您正在尝试的操作,通道API将变得昂贵且缓慢。这是因为通道API根本不是用来向客户端传输大量数据的。它的目的是定期向客户端发送更新,比如实时聊天或新闻播报的传入更新。最好的情况是,您只向客户机通知新内容,而客户机从服务器请求新内容。因此,您可以将新屏幕截图的URL发送给客户端,客户端请求它。当你流式处理桌面或视频时,这是非常不必要的,因为你想要的是尽可能多的更新。您不妨每隔几毫秒进行一次轮询
    • 使用屏幕截图共享桌面是一种特殊的疯狂行为,因为数据“流”无法正确压缩,因此将比必须的大得多。通常远程桌面系统使用的压缩算法与视频压缩算法非常相似,在视频压缩算法中,只传输上一张图片/帧的更改/差异,并且每隔一段时间会有一个完整的关键帧。更多的数据意味着在流中有更多的带宽和延迟。您至少要尽可能地最小化数据流,这一点非常重要
    • 大多数应用程序引擎应用程序的目标是允许扩展到数千个并行连接。这是通过允许多个实例提供相同的内容并强制实施若干限制(如前端请求的60秒截止时间/后端请求的10分钟、单个请求中的最大带宽使用率等)来实现的它将巨大的任务分解成小的请求,然后由大量的应用程序引擎实例提供服务。相同的限制将不允许您为视频或远程桌面流媒体之类的内容创建长时间运行的连续数据流。如果您按照上面的建议每隔几毫秒轮询一次,应用程序引擎将定期生成新实例,这将导致预热请求和进一步延迟
    但是足够多的不起作用的东西,这是一个应该起作用的例子:

    • 流式服务器实际上是允许直接流式传输到客户端的服务器
    • 流式服务器将其服务URL发布到应用程序引擎应用程序
    • AngularJS应用程序从应用程序引擎应用程序请求流
    • appengine告诉AngularJS应用程序上面的流媒体服务器信息
    • 客户机直接从服务器请求流
    这种方法省去了appengine作为数据代理的功能,因此您不必担心流式数据。但是,它确实要求您的服务器直接在internet上可用


    或者,有大量的应用程序/服务(例如twitch.tv)可用于桌面流媒体,而无需编写一行代码。这样的流可以简单地嵌入到您的Angular应用程序中。既然不是这样,我就不想在这里深入讨论此事。

    有人能直接或间接地提供帮助吗?