我有一个问题。最近我从我的流媒体服务器上得到了链接,可以在我的网站上播放。我的流媒体服务器使用http链接,但我的网站使用https ssl。在获取播放链接的过程中,显示以下错误,无法从我的流媒体服务器获取内容:
我期待着很快收到你们所有人的回音。
提前谢谢。
诚挚的问候,
长虹
发布于 2017-08-29 18:35:57
出现此错误是因为出于安全考虑,您无法从HTTPS页面访问HTTP资源。这是浏览器的行为。
要解决此问题,可以在接受HTTP GET请求服务器端创建代理终结点,例如/proxy/playlist.m3u8。浏览器将从https://<your-server>/proxy/playlist.m3u8获取资源,就像它存储在您的主机中一样。因为它是HTTPS请求,所以没有错误。
在服务器端,当监听到/proxy/playlist.m3u8的GET请求时,HTTP请求会被代理到您的流服务器(向流服务器发送GET请求,其中包含所有的headers、参数和body)。当接收到流媒体服务器的响应时,响应会直接返回给浏览器,并附带所有的响应头和数据。
由于对流服务器的HTTP请求发生在您的服务器端,因此浏览器的限制逻辑将不再适用。
例如,如果服务器是用带有Express和request模块的Node.js编写的,则代理端点将如下所示:
app.get('/proxy/playlist.m3u8', function(req, res) {
req.pipe(request('http://<streaming-server>/path/playlist.m3u8')).pipe(res);
});https://stackoverflow.com/questions/45936304
复制相似问题