我创建了一个简单的WebRTC应用程序,可以很好地测试本地主机。但是,除非您有安全的连接,否则WEBRTC不会有太大用处,因为除非您具有HTTP,否则浏览器现在将不会运行GetUserMedia,因此我正在“尝试”对其进行升级,以用于SSL-TLS。下面是我的两个应用程序并排的屏幕截图,一个安全(不起作用),另一个不安全(起作用)
如您在上面看到的,本地主机“连接”,而HTTP“无法建立连接”。我是SSL新手,所以这可能很简单。请多加关注。
我确实知道我的Javascript HTTPS服务器已安全连接,请参见下图
以下是我的代码段。任何帮助将不胜感激:
SSL客户端-Client.JS
var connection = new WebSocket('wss://localhost:8443'),
name = "";
Run Code Online (Sandbox Code Playgroud)
非安全客户端-Client.JS
var connection = new WebSocket('ws://localhost:8888'),
name = "";
Run Code Online (Sandbox Code Playgroud)
非安全JS服务器-index.JS
var WebSocketServer = require('ws').Server,
wss = new WebSocketServer({ port: 8888 }),
users = {};
wss.on('connection', function (connection) {
connection.on('message', function (message) .....
Run Code Online (Sandbox Code Playgroud)
安全JS服务器-SSLindex.JS
Var https = require('https'),
fs = require('fs'),
express = require('express'),
app = express();
var wss = https.createServer({
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt'),
ca: fs.readFileSync('ca.crt'),
requestCert: true,
rejectUnauthorized: false
}, app).listen('8443', function() {
console.log("Secure Express server listening on port 8443");
});
app.use("/", function(req, res, next)
{
res.send("index.js is working!");
});
Run Code Online (Sandbox Code Playgroud)
为方便开发人员,chrome将被localhost视为安全来源。
如果您使用的是http:// localhost或ws:// localhost,则不涉及SSL,因此它在右侧的屏幕截图中工作正常。
但是对于https或wss,浏览器将验证SSL证书授权。
解决wss:// localhost:8443 /的websocket连接问题
临时解决方法:打开https:// localhost:8443 / url,并通过单击Adavced =>允许浏览器例外继续
实际解决方案:将域名分配给您的节点服务器(node.kali2016.com),并使用授权的SSL证书配置节点。然后替换
var connection = new WebSocket('wss://localhost:8443')
为
var connection = new WebSocket('wss://yourdomainname:8443')
| 归档时间: |
|
| 查看次数: |
3170 次 |
| 最近记录: |