Node.js + Socket.io 应用程序 - 在heroku 中不起作用

标签 node.js express heroku socket.io

在我的应用程序中没有连接socket.io。

我的 app.js(服务器)

app.set('port',3000)
let server = app.listen(app.get('port'))
var io = require('socket.io').listen(server)
global.io = io

index.js(客户端)

const socket = io.connect('https://xxx-my-secret-app.herokuapp.com')

浏览器控制台

POST https://evening-savannah-51961.herokuapp.com/socket.io/?EIO=3&transport=polling&t=Lmx1tkf 404 (Not Found)

响应 html

<!DOCTYPE html><html><head><title></title><link rel="stylesheet" href="/stylesheets/style.css"></head><body><h1>Not Found</h1><h2></h2><pre></pre></body></html>

依赖关系:

"dependencies": { "body-parser": "~1.17.1", "connect": "^3.6.0", "connect-mongo": "^1.3.2", "cookie": "^0.3.1", "cookie-parser": "~1.4.3", "cookie-session": "^2.0.0-beta.1", "cors": "^2.8.3", "crypto": "0.0.3", "debug": "~2.6.3", "express": "~4.15.2", "express-formidable": "^1.0.0", "express-session": "^1.15.2", "fs": "0.0.1-security", "gravatar": "^1.6.0", "gravatary": "^1.0.0", "https": "^1.0.0", "mongoose": "^4.9.4", "morgan": "~1.8.1", "multer": "^1.3.0", "nodejs-gravatar": "^1.0.2", "passport": "^0.3.2", "passport-local": "^1.0.0", "passport.socketio": "^3.7.0", "pnglib": "0.0.1", "pug": "~2.0.0-beta11", "randomstring": "^1.1.5", "serve-favicon": "~2.4.2", "socket.io": "^1.7.3", "socketio-jwt": "^4.5.0"

我的应用程序是多用户聊天。对于客户端应用程序,我使用 Angular 4

最佳答案

您需要以不同的方式定义服务器运行的端口。

Heroku 设置您的应用程序运行的端口,然后将其绑定(bind)到您公开的公共(public)端口。要获取 Heroku 设置的端口,您需要读取 process.env.PORT:

let server = app.listen(process.env.PORT) 
var io = require('socket.io').listen(server) 
global.io = io

关于Node.js + Socket.io 应用程序 - 在heroku 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44162636/

相关文章:

heroku - 无法将 ruby​​ on Rails 应用程序推送到 Heroku - 网络问题?

windows - 英雄联盟 : Username for 'https://git.heroku.com' : git

node.js - Nodejs Bcrypt + Heroku 部署失败

javascript - Node.js中如何将异步转换为同步

javascript - 如何使用 Node 路径将 Windows 路径转换为 ​​posix 路径

database - 类方法和实例方法有什么区别[sequelize]

c++ - 无法在 CentOS 7 上使用 glibc-2.17 运行 uWebSockets

mysql - 无法在express.js中获取请求的API

javascript - Node.js 中基于好友的系统

node.js - 注销后销毁握手。套接字.io