使用https的生产服务器上的weksocket

时间:2018-09-19 13:02:04

标签: node.js websocket

我在这里遵循了这个例子 https://socket.io/get-started/chat

我现在正在尝试在生产服务器上运行它,但是遇到了麻烦

在我的ssh连接中,我正在执行节点index.js 我收到“正在监听*:3000”消息

然后,我尝试通过浏览器使用

访问index.html

https://mywebsite/websocket/index.html 索引似乎正在查找/socket.io/socket.io.js文件,因此该部分应该没问题

但是在浏览器控制台中却出现此错误 socket.io.js:7 POST https://mywebsite.com/socket.io/?EIO=3&transport=polling&t=MNnvCry 404()

我在apache上并且已经激活了https 在我的ssh控制台中,我应该看到用户已连接,但我没有。

1 个答案:

答案 0 :(得分:0)

我已经将socketio用于生产构建,并且遇到了类似的问题。

此问题通过在ssl conf文件中添加以下代码来解决。

RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P]

我在关闭virtualhost标记之前添加了它。