open.spotify.com 如何运作?

Posted

技术标签:

【中文标题】open.spotify.com 如何运作?【英文标题】:How does open.spotify.com work? 【发布时间】:2018-04-02 08:01:45 【问题描述】:

我可以访问网页https://open.spotify.com 并选择歌曲,然后立即在我的桌面Spotify 应用程序上播放这些歌曲。这是如何运作的?我可以想象一个场景,网页向服务器发送请求,然后告诉我的桌面应用程序播放,但网站和我的应用程序似乎太同步了。当然网络很快,但歌曲时间计数器完全同步,当我点击播放时没有延迟。

我想他们可以通过同步歌曲时间计数器来做一些聪明的事情,但我想知道他们是否有更聪明的事情:根本不使用服务器。

所以真正的问题是:有没有办法在网页和客户端上运行的应用程序之间进行直接通信?

【问题讨论】:

我不熟悉spotify 技术堆栈,但他们可以轻松地从您的桌面应用程序到他们的服务器建立一个套接字连接,一旦您选择一首歌曲,一条消息就会通过套接字连接发送到您的桌面应用程序和歌曲开始播放。由于套接字是发送少量数据的最快方式,因此它们的同步非常好也就不足为奇了。 【参考方案1】:

该机制在How does the Spotify web browser button interact with the Spotify app? 上进行了描述。当您安装 Spotify 的桌面应用程序时,一个名为 SpotifyWebHelper 的进程会在后台运行。此进程充当本地服务器并接收来自 open.spotify.com 的请求以与当前播放进行交互。如您所见,有一种方法可以使网站和本地应用程序通信。

值得注意的是,浏览器供应商越来越关注这种机制(请参阅https://bugs.chromium.org/p/chromium/issues/detail?id=378566),并且它将在未来的某个时候停止工作。更面向未来的解决方案可能基于从网页获取请求并更新您的应用程序的代理服务,反之亦然。 Web 套接字是一个很好的选择。尽管代理作为状态管理服务会引入一些延迟,但它也允许一些其他用例:例如,您不需要将应用程序安装在浏览网页的同一台机器上,并且可以例如控制一个移动客户端。

【讨论】:

以上是关于open.spotify.com 如何运作?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook的视频通话如何运作[关闭]

绝地武士池如何运作?

这个洗牌守则如何运作? [关闭]

新遗物如何运作?

YouTube 是如何运作的?

短网址服务如何运作?