gpt4 book ai didi

javascript - 使用 Socket.io 错误的 HTTP 通知

转载 作者:行者123 更新时间:2023-11-29 23:19:31 31 4
gpt4 key购买 nike

想法是使用 socket.io 和 node.js 服务器在带有 http 的 VPS 上发送自定义通知我可以使用在我的电脑上运行的网页连接到 VPS但我无法在我的域中使用它,因为它已被阻止。

此错误在浏览器控制台中弹出:

阻止了事件的混合内容加载“http://151.236.63.10:3000/socket.io/?EIO=3&transport=polling&t=MI4R0M3

这是我的服务器端 node.js 服务器:

var app     =     require("express")();
//var mysql = require("mysql");
var http = require('http').Server(app);
var io = require("socket.io")(http);


io.on('connection',function(socket){
console.log("A user is connected");
socket.on('add reserva',function(status){
io.sockets.emit('update reserva', status);
});
});


http.listen(3000,function(){
console.log("Listening on 3000");
});

不确定我做错了什么,有人可以帮助我吗?

最佳答案

您提到您的域正在使用 HTTPS,但您的 VPS 没有。

由于您的域使用的是 HTTPS,而现在您正尝试通过 HTTP 连接到您的服务器,因此您正在处理混合内容。

来自 Google's Web Fundamentals Docs on Mixed Content :

Mixed content occurs when initial HTML is loaded over a secure HTTPSconnection, but other resources (such as images, videos, stylesheets,scripts) are loaded over an insecure HTTP connection. This is calledmixed content because both HTTP and HTTPS content are being loaded todisplay the same page, and the initial request was secure over HTTPS.

解决方案:

这可以通过将您网站上的所有 http:// 链接替换为 https:// 来解决。

所以这意味着您必须通过 HTTPS 而不是 HTTP 连接到您的 VPS。因此,您应该在您的服务器上启用 HTTPS/SSL 并通过 HTTPS 连接到它。

或者您可以在您的域上禁用 HTTPS 并仅使用 HTTP。

有关详细信息,请参阅 MDN Web Docs on fixing a website with blocked mixed content .

关于javascript - 使用 Socket.io 错误的 HTTP 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51271051/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com