node.js - Nodejs套接字io连接错误ERR_CERT_AUTHORITY_INVALID
问题描述
我的错误是index.js:83 WebSocket connection to 'wss://54.38.211.175:3000/socket.io/?EIO=3&transport=websocket' failed: Error in connection establishment: net::ERR_CERT_AUTHORITY_INVALID
服务器代码
var fs = require('fs');
var options = {
key: fs.readFileSync('privateKey.key'),
cert: fs.readFileSync('certificate.crt')};
var app = require('https').createServer(options);
var io = require('socket.io')(app);
io.on('connection', function(socket) {
socket.emit('on_test', {'x': 1});
});
app.listen(3000);
客户代码
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js"></script>
<script>var HOST = "https://54.38.211.175:3000"; // PUT YOUR VPS IP THERE
var SOCKET = null;
if (!SOCKET) {
SOCKET = io.connect(HOST, {rejectUnauthorized: false ,secure: true,transports: ['websocket']});
SOCKET["on"]("connect", function (b) {
console["log"]("baglandim");
});
SOCKET["on"]("connect_error", function (a) {
console.error("eror =" + a);
});
console.log(SOCKET);
}</script>
我创建了 ssl,但它不起作用。我的网站使用 SSL,所以我没有使用 http 连接到 socketio
解决方案
我解决。必须读取连接到 socketio nodejs 的网站的证书。
对于 plesk
var fs = require("fs");
var options = {
key: fs.readFileSync(
"/usr/local/psa/var/modules/letsencrypt/etc/live/YOURSITE/privkey.pem"
),
cert: fs.readFileSync(
"/usr/local/psa/var/modules/letsencrypt/etc/live/YOURSITE/fullchain.pem"
)
};
var app = require("https").createServer(options);
var io = require("socket.io").listen(app);
app.listen(2083);
//app.listen(PORT);
console.log('acigim');
推荐阅读
- r - 使用 dplyr 逐列操作时,在源列之后立即排列计算列
- java - 如何在 node.js 中使用 SOAP 成功向 adwords url 发出请求?
- python - 在 Python 中传递给函数时,创建嵌套字典的副本或直接访问它是否更快?
- amazon-web-services - 如何恢复与 aws cli 的会话?
- javascript - 我做了一个简单的排序功能,但它不起作用
- django - Django按相关字段过滤
- javascript - Google.script.run 功能在 firefox、safari 中失败
- dataframe - 2个数据框之间的匹配行
- r - 在 r 中提取不同值的最快方法
- angular - Angular - 如何将数据从一个组件传递到另一个