EC2 mit sockel.io
Habe ich eine aws-micro-instance für meine Knoten-Applikation. Ich benutze socket.io
als gut. Ich erhalte die folgende Fehlermeldung:
GET http://localhost:3000/socket.io/1/?t=1393065240268 net::ERR_CONNECTION_REFUSED
in der Konsole in dem moment, wenn die socket-Verbindung erstellt werden soll. Abgesehen von diesem Knoten app funktioniert. Ich vermute, dass die GET
sollte nicht in Richtung localhost
sondern auf die Adresse des Servers.
Beachten Sie, dass auf der server-Seite die Knoten-logs, es diente socket.io
:
debug - served static content /socket.io.js
Hier ist ein Bild von dem Security-Gruppe von meinem server:
.
Buchse.io setup:
env = process.env.NODE_ENV || 'development',
packageJson = require('../package.json'),
http = require('http'),
express = require('express'),
RedisStore = require('connect-redis')(express),
SessionSockets = require('session.socket.io'),
path = require('path'),
settings = require('./settings'),
expose = require('express-expose')
//Configure server for io and session.socket.io
tmpApp = express(),
tmpServer = http.createServer(tmpApp),
io = require('socket.io').listen(tmpServer),
appCookieParser = express.cookieParser(settings.cookie.secret),
appRedisStore = new RedisStore(),
sessionIO = new SessionSockets(io, appRedisStore, appCookieParser)
global.App = {
app: tmpApp,
server: tmpServer,
port: process.env.PORT || 3000,
sessionIO: sessionIO,
io: io,
start: function() {
var setUp = this.util('setUp'),
socketHandler = require('./socketHandler'),
self = this
setUp.initialize(function(err, waitingGames) {
if (err) {
console.log('error at initializing the application')
process.exit(0)
}
if (!self.started) {
self.started = true
self.server.listen(self.port)
socketHandler()
console.log("Running App Version " + App.version + " on port " + App.port + " in " + App.env + " mode")
}
})
},
...
}
UPDATE
Wenn ich änderte meine port 80
ich bekomme eine andere Fehlermeldung:
XMLHttpRequest cannot load http://localhost/socket.io/1/?t=1393067003774. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://ec2-54-214-136-70.us-west-2.compute.amazonaws.com' is therefore not allowed access.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe das problem gefunden. Es war auf der client-Seite. Ich war die Verbindung zu
localhost
. Es ist ein dummer Fehler, aber während der Entwicklung, die Sie nicht bezahlen Aufmerksamkeit auf diese details auf und es schien natürlich, dasssocket.io
sollte die Verbindung der Wurzel, von wo Sie die Bereitstellung Ihrer Inhalte.Da bin ich mit EC2 und nach jedem Neustart bekomme ich andere DNS-Adresse habe ich geschickt, zu der Seite, wo ich das initialisieren der
socket.io
die richtige diereq.headers.host
(mitexpress-expose
).