通过letsencrypt进行https安装后,Nodejs聊天程序'io未定义'错误

我在我的网站上设置了一个nodejs聊天程序。

然后,当我使用letsencrypt将网站从http移动到https时,聊天程序停止工作。

这里是服务器和客户端:
https://synodins.com/apps/chat/server.js
https://synodins.com/apps/chat/client.html
并直接阅读客户端脚本:
https://synodins.com/apps/chat/client.txt

问题是,正如你可以看到在客户端检查元素,是我得到错误:
ReferenceError:io没有定义

我已经search了这个错误,发现:
socket.io – ReferenceError:io没有定义
但是我已经按照他在答案中提出的方式来做事了。

我不知道是什么问题,虽然我怀疑在客户端加载的socket.io模块有问题。

有趣的是,我可以在本地运行聊天没有问题,但是当我尝试在服务器上运行它,我得到这个错误。

有谁可以看到问题是什么?

所以我看了一下页面,发现了两个问题:

混合内容存在问题。 当使用“https”加载页面时,不能使用“http”加载文件。 这是一个安全问题。

其次,我注意到JS文件的链接是http://127.0.0.1/... ,这是指向您的本地主机。

看上面的评论,看起来你曾经指向别的地方,但我build议改变标签指向相同的源文件,但与https://...在开始的src。

这是我访问您的网站时遇到的错误:

 Mixed Content: The page at 'https://synodins.com/apps/chat/client.html' was loaded over HTTPS, but requested an insecure script 'http://127.0.0.1:8002/socket.io/socket.io.js'. This request has been blocked; the content must be served over HTTPS. 

之后,让我知道,我会进一步研究。

编辑:

如果一个相对的URL是可能的,它总是首选。 请检查出与您的问题相关的答案: https : //stackoverflow.com/a/29835657/672229