【问题标题】:Node Js wont connect over http but will over https?Node Js不会通过http连接但会通过https?
【发布时间】:2016-04-08 01:25:07
【问题描述】:

我有一个使用节点 js 做一些事情的网站,但我需要它通过 http 而不是 https 连接。

这行得通;

var socket = io.connect("https://secure.tp.uk.com:3000");

但是,这不是;

var socket = io.connect("http://secure.tp.uk.com:3000");

我得到了错误

net::ERR_EMPTY_RESPONSE

这是我的节点服务器脚本;

var http = require('http');
var fs = require('fs');
var express = require('express'),
app = module.exports.app = express();


var server = http.createServer(app);
var io = require('socket.io').listen(server);

server.listen(3000);

var demoUsers = [];
var tpUsers = [];
var activeGls = [];

io.sockets.on('connection', function (socket) {
   // here are all my functions which i know work because it works fine over https!!
});

它最初是通过 http 工作的,但我用 https 测试了一些东西,但我在 ios 设备上遇到了 https 问题,所以现在我需要让它与 http 一起工作!

这是我的站点配置文件。 /etc/apache2/sites-available/

<VirtualHost *:80>
    ServerName secure.tp.uk.com
    ServerAlias secure.tp.uk.com
    DocumentRoot /var/www/laravel/public

    <Directory /var/www/laravel/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

【问题讨论】:

  • 查看托管配置会很有帮助(nginx、apache?),域的配置很可能使站点无法通过一种协议访问,即使它在另一种协议中工作。在没有托管配置的情况下在本地测试它可能会突出显示它是否在该区域中。
  • 我已经为该站点添加了我的 conf 文件。

标签: javascript jquery node.js


【解决方案1】:

如果我在浏览器中加载了两个 URL,那么通过 http 的 URL 也无法正常工作,甚至 URL 中还有一个“安全”,所以 URL 可能不支持 http?因为,正如我已经提到的,当您在浏览器中加载 http URL 时,它不会加载,所以我猜这就是 EMPTY_RESPONSE 的解释。

【讨论】:

  • 但是为什么不通过 h​​ttp 加载呢?安全部分只是我的子域。
  • 您是否 100% 确定您仅通过 http 启用了访问?尝试在浏览器中访问该 URL,它似乎不起作用。
  • 是的,它需要通过 http 工作。试过了,我明白你的意思了。
猜你喜欢
  • 2012-11-16
  • 2017-02-12
  • 1970-01-01
  • 2023-03-26
  • 2021-11-30
  • 2016-11-12
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
相关资源
最近更新 更多