我有一个问题。最近我从我的流媒体服务器获取链接在我的网站上播放。我的流媒体服务器使用http链接,但我的网站使用https ssl。在我获得播放链接期间,它无法通过显示以下错误从我的流媒体服务器获取内容:
我期待很快收到你们所有人的回复。
提前致谢。
最诚挚的问候,
Chhenghong
答案 0 :(得分:1)
出现此错误是因为出于安全考虑,您无法从HTTPS页面访问HTTP资源。这是浏览器的行为。
要解决此问题,可以在服务器端创建代理端点,例如/proxy/playlist.m3u8
,它接受HTTP GET请求。浏览器将从https://<your-server>/proxy/playlist.m3u8
获取资源,就好像它存储在您的主机中一样。因为它是HTTPS请求,所以没有错误。
在服务器端,当听到GET
对/proxy/playlist.m3u8
的请求时,HTTP请求将被代理到您的流服务器(向所有标头发送GET
请求到流服务器,参数和身体)。当收到来自流服务器的响应时,响应将直接返回给浏览器,包含所有响应头和数据。
由于服务器端对流服务器的HTTP请求发生,浏览器的限制逻辑不再适用。
例如,如果服务器是用Node.js编写的,使用Express和request
模块,代理端点将如下所示:
app.get('/proxy/playlist.m3u8', function(req, res) {
req.pipe(request('http://<streaming-server>/path/playlist.m3u8')).pipe(res);
});