Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails、Desive和Nginx RTMP认证_Ruby On Rails_Nginx_Devise_Rtmp - Fatal编程技术网

Ruby on rails Rails、Desive和Nginx RTMP认证

Ruby on rails Rails、Desive和Nginx RTMP认证,ruby-on-rails,nginx,devise,rtmp,Ruby On Rails,Nginx,Devise,Rtmp,我正在开发一个将由一个相当小的社区使用的实时流媒体服务,目前我无法确定如何保护从OBS/xSplit接收rtmp并将其作为HLS发布的nginx服务器。HLS使用VideoJS播放。用户帐户使用Desive模块完成,用户名用于创建客户端和拖缆的路径。我需要添加流密钥来保护用户帐户不被任何人流到,这可以通过nginx.conf中的on_publish和PHP实现,但这不适用于我的RoR/designe accounts系统。如何在Desive和Rails中实现这一点 编辑:我被要求添加一些代码,尽

我正在开发一个将由一个相当小的社区使用的实时流媒体服务,目前我无法确定如何保护从OBS/xSplit接收rtmp并将其作为HLS发布的nginx服务器。HLS使用VideoJS播放。用户帐户使用Desive模块完成,用户名用于创建客户端和拖缆的路径。我需要添加流密钥来保护用户帐户不被任何人流到,这可以通过nginx.conf中的on_publish和PHP实现,但这不适用于我的RoR/designe accounts系统。如何在Desive和Rails中实现这一点

编辑:我被要求添加一些代码,尽管我不知道在Rails中有什么方法可以做到这一点,下面是一个PHP和Python示例

NGINX http服务器在端口8080上运行,但位于端口80上的apache2代理之后,因为这台机器承载多个网站

这是我的NGINX配置

worker_processes  1;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8080;
        server_name  localhost;
         location /hls {
            types {
                application/vnd.apple.mpegurl m3u8;
            }
            root /tmp;
            add_header Cache-Control no-cache;

            # To avoid issues with cross-domain HTTP requests (e.g. during development)
            add_header Access-Control-Allow-Origin *;
        }

        location / {
            root   html;
            index  index.html index.htm;
        }
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl {
            root /var/www/html/;
        }




        #error_page  404              /404.html;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}


rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        deny play all;
                        hls on;
                        hls_path /tmp/hls;
                        hls_fragment 15s;
                }
        }
}

请包含问题的代码。您可以使用rails应用程序处理身份验证。使用streamkey向用户表中添加新列。为用户添加新的post操作,以检查流的名称是否与他们的streamkey匹配。流的名称可用于on_publish以及尝试发布时传递的任何url参数。因此,只需让您的用户将?streamkey=附加到OBS密钥中,并在控制器操作中检查它。如果不匹配,则返回400响应以拒绝,返回200响应以允许。然后,只需将密钥提供给用户,您就可以开始了。请包含问题的代码您可以使用rails应用程序处理身份验证。使用streamkey向用户表中添加新列。为用户添加新的post操作,以检查流的名称是否与他们的streamkey匹配。流的名称可用于on_publish以及尝试发布时传递的任何url参数。因此,只需让您的用户将?streamkey=附加到OBS密钥中,并在控制器操作中检查它。如果不匹配,则返回400响应以拒绝,返回200响应以允许。然后,只需将密钥提供给用户就可以了。