(Heroku) 如何将 HTTP 请求从我的 web dyno 发送到我的服务器 dyno
(Heroku) How can I send an HTTP request from my web dyno to my server dyno
我问这个问题是因为在互联网上搜索后,我找不到任何相关信息。可能我根本不应该问这个问题,但这让我发疯所以我们开始吧。
我有一个带有两个测功机的 Heroku 应用程序。我的前端 (Angular) 有一个网络测功机,而我的后端 (Node) 有一个服务器测功机。我想从我的前端向我的 restful 后端发送一个 HTTP 请求。 这可能吗?
我知道我可以通过将它们分成两个应用程序来实现它,但如果可能的话,我想将它们放在一个应用程序中。
这是我的 Procfile 以及一些附加信息。他们正在成功部署,我只是想直观地展示一下我正在部署的内容。
web: cd frontend && npm start
server: node app.js
如果这甚至是不可能的事情,任何比我知识渊博的人都会伸出援助之手。
有可能。示例:
const http = require('http');
const path = require('path');
const express = require('express');
const WSServer = require('ws').Server;
const DateFormat = require('dateformat');
let wss;
let server;
const app = express();
app.use(express.static(path.join(__dirname, './../build')));
server = new http.createServer(app);
wss = new WSServer({ server })
this.wss = wss;
wss.on('connection', function(socket) {
console.log(DateFormat(new Date(), 'm/d h:MM:ss TT'),
`client connected to server (${wss.clients.size} total)`);
socket.on('message', function(data) {
console.log(data)
});
socket.on('close', function(code, desc) {
console.log(DateFormat(new Date(),
"h:MM:ss TT"),'client disconnected, total:', wss.clients.length);
});
});
wss.on('listening', () => console.log('Websocket listening on port', config.get('port')));
wss.on('error', err => console.log('Websocket server error:', err));
server.on('error', err => console.log('Server error:', err));
server.listen(process.env.PORT);
我在这里部署了一个位于 ../build
的静态前端并为其提供服务。我正在使用 websocket 功能 运行 在同一地址但在不同的协议下扩展 Web 服务器。
您也可以仅使用 http 来完成。你必须分开路线。
我问这个问题是因为在互联网上搜索后,我找不到任何相关信息。可能我根本不应该问这个问题,但这让我发疯所以我们开始吧。
我有一个带有两个测功机的 Heroku 应用程序。我的前端 (Angular) 有一个网络测功机,而我的后端 (Node) 有一个服务器测功机。我想从我的前端向我的 restful 后端发送一个 HTTP 请求。 这可能吗?
我知道我可以通过将它们分成两个应用程序来实现它,但如果可能的话,我想将它们放在一个应用程序中。
这是我的 Procfile 以及一些附加信息。他们正在成功部署,我只是想直观地展示一下我正在部署的内容。
web: cd frontend && npm start
server: node app.js
如果这甚至是不可能的事情,任何比我知识渊博的人都会伸出援助之手。
有可能。示例:
const http = require('http');
const path = require('path');
const express = require('express');
const WSServer = require('ws').Server;
const DateFormat = require('dateformat');
let wss;
let server;
const app = express();
app.use(express.static(path.join(__dirname, './../build')));
server = new http.createServer(app);
wss = new WSServer({ server })
this.wss = wss;
wss.on('connection', function(socket) {
console.log(DateFormat(new Date(), 'm/d h:MM:ss TT'),
`client connected to server (${wss.clients.size} total)`);
socket.on('message', function(data) {
console.log(data)
});
socket.on('close', function(code, desc) {
console.log(DateFormat(new Date(),
"h:MM:ss TT"),'client disconnected, total:', wss.clients.length);
});
});
wss.on('listening', () => console.log('Websocket listening on port', config.get('port')));
wss.on('error', err => console.log('Websocket server error:', err));
server.on('error', err => console.log('Server error:', err));
server.listen(process.env.PORT);
我在这里部署了一个位于 ../build
的静态前端并为其提供服务。我正在使用 websocket 功能 运行 在同一地址但在不同的协议下扩展 Web 服务器。
您也可以仅使用 http 来完成。你必须分开路线。