【发布时间】:2015-11-01 07:36:03
【问题描述】:
好的,所以我让我的 socket.io 服务器在不同的端口上侦听,但是为了让它与 https 一起工作,我需要让它在不传入端口的情况下进行侦听(默认)。 (它在加载 http 的不同端口上工作正常,但我需要它在 https 上工作)
我的项目运行良好,客户端可以正常连接和发送数据。但是,我将该站点移至具有 SSL 证书的主域。该站点通过https加载所有内容,因此无法加载socket.io.js的http版本
但是,现在我将其切换为 var client = require("socket.io").listen().sockets; 而不是在不同/特定端口上侦听,它仍然无法正常工作。它没有给我一个连接错误,而是根本不包括该文件。
我担心我最终需要重新制作整个网站以通过 node.js 托管我的文件,我宁愿不必这样做。
我没有使用除mysql-node 和socket.io 之外的任何其他模块,如果可能的话,我更愿意保持这种方式。我是 node.js 的新手,所以如果有一个我不知道的明显答案,我很抱歉。
然而,我环顾四周,似乎无法在任何地方找到答案。或者,至少是一个明确的答案。
使用websockets 代替socket.io 会更好吗?
如果是这样,我将如何去做?老实说,我更愿意重新制作我的节点应用程序,而不是重新制作我的网站。
我将 socket.io.js 文件包含在客户端中,如下所示:
<script src="https://mysite/socket-io/socket.io.js"></script>
但当然是 404,因为它不是我的 apache 服务器上的实际文件。我的public_html 目录中没有名为socket-io 的文件夹/目录,所以这对我来说很有意义。
但是,我怎样才能让它工作呢?我需要通过 node.js 托管我的文件还是使用 HTML5 websockets 会更好?我的网站有相当多的用户使用移动设备,所以我必须确保它也能在移动设备上运行。
【问题讨论】:
-
为什么要使用两个独立的 Web 服务器(Apache 和 node.js)来创建您的网站?您如何在架构上进行设置?您是在尝试使用 Apache 服务器还是使用 node.js 服务器来提供 socket.io.js 文件?
标签: javascript node.js sockets ssl