【问题标题】:connecting to socket.IO server through apache webproxy通过 apache webproxy 连接到 socket.IO 服务器
【发布时间】:2018-12-28 22:10:08
【问题描述】:

我的 vps 上有 2 个 node.js 应用程序。一个在 3001 端口,一个在端口 5001(ssl) 和 5000(http)。

我使用 apache 代理将流量从主页路由到 node.js 服务器。它还允许我轻松安装 LE 证书。

这是我的 apache 设置

    ProxyPass /herstelling http://localhost:5000/
    ProxyPassReverse /herstelling http://localhost:5000/
    ProxyPass /kaaswijn http://localhost:3001/
    ProxyPassReverse /kaaswijn http://localhost:3001/

网站加载,但我无法让我的 socket.io 连接。 这是我正在使用的代码

为了让 https 正常工作,我设置了一个域 cdn.quintenverhelst.be 以获取证书。

这个域只是直接指向服务器IP

在 nodeJS 服务器上:

var app = require('express')();
var http = require('http').Server(app);
var port = 5000;
var express = require('express');
var io = require('socket.io')(http);

https.createServer({
//server keys
}, app).listen(5001);

客户端连接代码:

 <script src="https://cdn.quintenverhelst.be:5001/socket.io/socket.io.js"></script>   
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
    <script> var socket = io.connect("https://cdn.quintenverhelst.be:5001");</script>
    <script  src="https://cdn.jsdelivr.net/gh/verhelstq/maintenanceReport/engine.js"></script>

当我打开它时,它给了我错误:

socket.io.js:1 加载资源失败:服务器响应状态为404(未找到)

【问题讨论】:

    标签: javascript node.js apache socket.io


    【解决方案1】:

    该 URL 无法解析为 socket.io.js 文件。看起来它甚至没有将套接字 IO 脚本加载到页面中:

    <script src="https://cdn.quintenverhelst.be:5001/socket.io/socket.io.js"></script>  
    

    尝试删除端口号,JS文件在我测试时解析。

    <script src="https://cdn.quintenverhelst.be/socket.io/socket.io.js"></script>  
    

    这至少可以帮助您克服第一个错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      相关资源
      最近更新 更多