网站远程控制
Posted
技术标签:
【中文标题】网站远程控制【英文标题】:Remote Control for Website 【发布时间】:2013-05-04 09:31:56 【问题描述】:我想开始创建一个可以在手机(任何类型的智能手机)上打开的网站。该网站将具有控制您已在计算机上打开的网站的功能。 (2011年的大众新世纪甲壳虫有一个功能,我可以通过智能手机在我台式电脑上打开的网站上滚动)
我们有一个马视频流媒体网站,如果他们可以在智能电视上观看视频流并通过 iphone/android/wp 进行控制,这对我们的客户来说将是一个很棒的功能。
另外,来自瑞士的 wilmaa.com 为智能手机提供遥控器,以便在智能电视/网络浏览器上浏览我的网站。
因为我需要一个起点来了解它是如何工作的,所以我正在查看谷歌,也许外面已经有任何遥控器,但不幸的是我找不到任何东西。
也许 Stack Overflow 可以通过提供一些关于如何实现这一点的起点来帮助我。
【问题讨论】:
我也在尝试解决这个问题,请查看diplomatic-cover.com/multi 【参考方案1】:要做到这一点,您需要某种“推送”服务来克服 HTTP 的固有缺点,即它一直是“仅拉”系统 - 客户端发起请求,服务器响应。在这种情况下,您希望将事件从服务器推送到客户端。
在过去的几年里,这是通过所谓的“长轮询”来完成的。这意味着您“滥用”了浏览器中存在的保护服务器免受挂起请求的机制,但允许它们需要一段时间。 Apache 默认配置为允许请求在大多数平台上持续 300 秒。长轮询通过发送 Ajax 请求来工作,如果服务器没有数据,它只会等待,而不是发送回它,直到它确实有数据,或者像一分钟这样的长时间过期.客户端在收到响应之前不会发送新请求。这给最终用户带来了实时反馈的错觉,这也是 Facebook 等网站多年来一直这样做的方式。
几个月后,还可以采用一种新的 html5 技术,该技术现在在所有主要浏览器上都有稳定的实现:Websockets。该技术允许服务器将常见的拉取请求升级为完全双向连接,从而允许浏览器和服务器之间的实时通信。遗憾的是,像 Apache 这样的“常规”网络服务器并不是真正为这种逻辑构建的,尽管可以使用 Ratchet 等框架来模拟它。对于系统的实时部分,大多数站点(包括此处的 Stack Overflow)当前选择的平台是 node.js - 服务器端异步 javascript。
在你的情况下我会推荐什么:
设置一个单独的 node.js 服务器作为事件调度程序(您可以在 Amazon 上以每月 15 美元左右的价格获得一个便宜的微型 EC2 实例,这可能就足够了,并且具有很强的可扩展性) 将所有其他代码保留在现在所在的常规环境中,只需添加逻辑以与事件调度程序通信 部署 Socket.io 作为您的 websocket 处理服务。它简化了服务器端和客户端的所有 Javascript 逻辑,并以一种与 IE5.5 兼容的方式包装实时连接,通过优雅地降级为服务器和客户端都支持的技术 - 最近浏览器上的 websockets,旧系统上的长轮询或其他技术。使用此解决方案,您可以使用相对较少的代码轻松实现一个在多个平台上具有完全实时响应能力的系统,如您所描述的。
至于控制应用本身,只需使用 HTML5,如果您打算分发到应用商店,请使用 Phonegap。
【讨论】:
以上是关于网站远程控制的主要内容,如果未能解决你的问题,请参考以下文章