WebRTC:如何一起设置签名服务器和网络服务器?

时间:2016-11-21 16:05:28

标签: webrtc

我正在尝试使用WebRTC在两个设备(浏览器)之间传输文件。我按照GitHub repo来设置signalmaster信令服务器,它工作正常。所以,我在同一个文件夹中放了一个简单的index.html页面。但是当我转到http://localhost:8888时,它不显示页面。然后我发现信令服务器不是网络服务器。所以,我使用Web server for chrome设置了一个网络服务器。

此时我很困惑:

  1. 在拥有网络服务器的同时需要信令服务器!!和
  2. 如果我无法加载网页,我将如何使用信令服务器!!
  3. 简单来说,如果我还没有使用它,为什么还需要信令服务器?另外,如何设置一个签名服务器和网络服务器,以便我的页面可以加载!

2 个答案:

答案 0 :(得分:1)

这可以很好地概述信令服务器与WebRTC的作用: https://www.html5rocks.com/en/tutorials/webrtc/infrastructure/

答案 1 :(得分:1)

可以将当前网页与nodejs,php和nginx结合使用。 Nodejs和信令服务器在端口8888上运行,使用反向代理,您可以在网址中没有端口的情况下调用网页。

server {
   listen 80 default;

   server_name http://192.168.229.128;


   root /var/www/html;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
           proxy_pass http://localhost:8888;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'upgrade';
           proxy_set_header Host $host;
           proxy_cache_bypass $http_upgrade;
   }


   location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}



   location ~* \.io {
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_set_header X-NginX-Proxy true;

  proxy_pass http://localhost:8888;
  proxy_redirect off;

  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
   }



}

在这种情况下,使用了socket.io,但如果需要,可以将其删除。