该代码在我的本地计算机上可以正常工作,但是当它在AWS EC2的实时服务器上上传时,连接被拒绝。
出于测试目的,我们尝试在AWS EC2上删除安全性,该功能现已正常运行。
因此,我们不确定它可能在AWS EC2的Security配置或Node服务器的代码中。
节点服务器端口(8001)的安全性仅允许使用1个特定的IP地址,该IP地址是试图连接节点服务器的站点本身的IP地址(samplehostname.com)。
节点服务器的安全要求是我们允许一切(用于测试):
//previous method to initialize svgjs 2.7
const svgWindow = require('svgdom');
const SVGJS = require("svg.js")(svgWindow);
//with version 3.0.5 the package name changed
const svgWindow = require("svgdom");
const SVGJS = require("@svgdotjs/svg.js");
SVGJS(svgWindow); //is not a function error
错误日志为:
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', "*:*");
res.header('Access-Control-Allow-Methods','GET');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
})
Node.js代码:
GET http://samplehostname.com:8001/socket.io/?
EIO=3&transport=polling&t=MWnX8e4 net::ERR_CONNECTION_REFUSED
Vue.js代码:
var app = require('express')()
var server = require('http').Server(app)
var io = require('socket.io')(server)
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', "*:*");
res.header('Access-Control-Allow-Methods','GET');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
})
io.on('connect', function (socket) {
console.log(`Socket Connected ID: ${socket.id}`)
var Redis = require('ioredis')
var redis = new Redis({
host: 'localhost',
port: 1234,
password: 'samplepasswordhere',
})
redis.subscribe('(CHANNEL-HERE)')
redis.on("message", function (channel, message) {
var parsed_message = JSON.parse(message)
socket.emit(channel, parsed_message.data.data)
console.log(message)
})
})
var listener = server.listen(8001, ()=>{
console.log('Node Server Listening on port ' + listener.address().port)
});