EC2 avec la prise.io
J'ai mis en place une aws instance micro pour mon nœud de l'application. J'utilise socket.io
. J'obtiens l'erreur suivante:
GET http://localhost:3000/socket.io/1/?t=1393065240268 net::ERR_CONNECTION_REFUSED
dans la console au moment de la connexion de socket doit être créé. En dehors de cela le nœud application fonctionne. Je soupçonne que le GET
ne doit pas être vers localhost
mais vers l'adresse du serveur.
Noter que sur le côté serveur nœud de journaux qu'il a servi socket.io
:
debug - served static content /socket.io.js
Voici une photo du Groupe de Sécurité de mon serveur:
.
Socket.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")
}
})
},
...
}
Mise à JOUR
Quand j'ai changé de port 80
je reçois un autre message d'erreur:
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.
OriginalL'auteur Pio | 2014-02-22
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé le problème. Il était sur le côté client. J'ai été de la connexion à
localhost
. C'est une erreur stupide, mais en cours de développement, vous ne payez pas attention à ces détails et il semblait naturel quesocket.io
doit se connecter à la racine de l'endroit où vous servir de votre contenu.Depuis que je suis en utilisant EC2 et après chaque redémarrage je reçois différente de l'adresse du DNS, j'ai envoyé à la page où je suis initialisation de la
socket.io
le corriger l'req.headers.host
(à l'aide deexpress-expose
).Il devrait être plus simple pour fixer le support.io adresse du serveur '/socket.io " qui doit référencer le serveur j'obtiens le site de. Pas sûr si le socket.io poignées, mais il devrait certainement.
veuillez expliquer plus
OriginalL'auteur Pio