7
我已经为我的节点应用程序设置了aws micro实例。我也使用socket.io
。此刻EC2与socket.io
GET http://localhost:3000/socket.io/1/?t=1393065240268 net::ERR_CONNECTION_REFUSED
在控制台时,应建立socket连接:我收到以下错误。除此之外,节点应用程序工作。我怀疑GET
不应该朝着localhost
而是朝向服务器的地址。
需要注意的是在服务器端节点的日志,它提供socket.io
:
debug - served static content /socket.io.js
这里是我的服务器的安全组图片:
。
Socket.io设置:
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
当我改变了我的口80
我得到一个不同的错误:
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.
谢谢你,谢谢:))我也使用本地主机,当我改变它到我的网址,它的工作。 – Data
将socket.io服务器地址设置为'/socket.io'应该更简单,它应引用我从中获取网站的服务器。不知道是否socket.io处理,但它绝对应该。 – Erandros
请详细解释 – dangalg