问题描述
我正在尝试制作要在Heroku上部署的应用程序,但我读到我只能在Heroku应用程序中打开1个端口。问题是我需要打开通用的TCP连接,以侦听未通过HTTP协议发送的数据。因此,我使用“ net”库创建服务器,但是现在我需要侦听常规的HTTP连接以提供一些静态文件(最好使用express),还需要侦听使用socket.io进行的websocket连接。
或者,如果有一种方法可以在heroku(具有免费层)上打开多个端口,那也很好。
感谢您的帮助
这是我当前的应用状态:
// NodeJS imports
const fs = require('fs');
const path = require('path');
const net = require('net');
// Dependency imports
const socketIO = require('socket.io');
// App imports
const log = require('./log');
// App
const PORT = process.env.PORT || 5000;
const server = net.createServer();
const io = socketIO(server);
io.on('connection',(socket) => {
console.log(socket);
});
server.on('connection',(connection) => {
log(`Incoming connection from: ${connection.remoteAddress}:${connection.remotePort}`);
connection.on('data',(msg) => {
msg = msg.toString();
if (msg.includes('HTTP/')) {
// Redirect to express or websocket to serve static files or make websocket connection
log('HTTP REQUEST');
connection.write(Buffer.from('Hello World!'));
return;
}
log(msg);
});
});
server.listen(PORT,() => {
log(`App started. App running on port ${PORT}`);
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)