如何在同一个弹性beanstalk实例上运行socket.io和express?

Hus*_*faq 2 node.js express socket.io amazon-elastic-beanstalk

我们有弹性beanstalk实例,我们也有一些休息服务和socket.io.express正在启动ad端口80.我在3001启动了socket.io但无法连接此套接字.我也关闭了代理,从nginx到off.socket的代码如下

var express         = require('express'),
    app             = express(),
    server          = require('http').createServer(app),
    io              = require('socket.io')(server), //make sockets
    port            = 3001;//port for socket

//initiate server
server.listen(port, function () {
    console.log('Socket.io listening at port %d', port);
});
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 8

默认情况下,弹性beanstalk实例在其前面有一个nginx代理,它未配置为允许webSockets.您可以关闭代理,也可以配置nginx实例以支持webSockets.

下面是一篇文章,描述如何启用在代理的WebSockets支持.

并且,这里有两篇文章描述了在这里这里完全禁用代理.

而且,即使是关于同一主题的StackOverflow问题/答案:

AWS Elastic Beanstalk上带有socket.io的Websockets