我正尝试连接到aws ec2实例上的套接字。出于某种原因,我无法这样做。我的客户端代码:Socket.io不能在nodejs上使用aws
var socket = io.connect('http://ec2-MY-IP.us-west-2.compute.amazonaws.com:3000');
console.log(socket);
socket.on('connect', function(){
alert(socket.id); // 'G5p5...
});
socket.on('connect_error', function(){
console.log('Connection Failed');
});
我总是得到“连接失败”在浏览器控制台
我从安全组的入站部分打开的端口,当我使用:
telnet ec2-MY-IP.us-west-2.compute.amazonaws.com 3000
它给我输出
Trying ...
Connected to ec2-MY-IP.us-west-2.compute.amazonaws.com.
Escape character is '^]'.
我的服务器端代码去这里:
const express = require('express');
const bodyParser= require('body-parser');
const app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
http.listen(3000,() => {
console.log('listening on 3000');
});
MongoClient.connect('mongodb://ec2-MY-IP.us-west-2.compute.amazonaws.com:27017/userlogsdemo', (err, database) => {
if (err) return console.log(err)
db = database;
console.log("DB CONNECTED")
io.on('connection', function (socket) {
console.log("SOCKET CONNECTED")
socketobj = socket
socket.on('reloadtickets', function (data) {
connectedusers.forEach(function(v){
if(v.connecteduserid == data.target){
setTimeout(function() {
io.emit('reloadticketsok',data);
}, 100)
}
});
});
// WHEN SOMEONE IS DISCONNECTED
});
})
当我运行“节点server.js”它说“数据库连接”,但不是“SOCKET CONNECTED”。 代码localhost:8080(在我的本地机器不在aws上)正常工作。在aws Ec2上是否有特别的要求?任何建议将不胜感激。在此先感谢
我认为问题是与开放的端口。解决了!谢谢! –