我正在尝试使用WebRTC在两个设备(浏览器)之间传输文件。我按照GitHub repo来设置signalmaster
信令服务器,它工作正常。所以,我在同一个文件夹中放了一个简单的index.html
页面。但是当我转到http://localhost:8888
时,它不显示页面。然后我发现信令服务器不是网络服务器。所以,我使用Web server for chrome
设置了一个网络服务器。
此时我很困惑:
简单来说,如果我还没有使用它,为什么还需要信令服务器?另外,如何设置一个签名服务器和网络服务器,以便我的页面可以加载!
答案 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,但如果需要,可以将其删除。