(Heroku) Как я могу отправить HTTP-запрос от моего веб-dyno на мой сервер dyno - PullRequest
0 голосов
/ 01 апреля 2020

Я задаю этот вопрос, потому что после поиска по inte rnet я ничего не могу найти по этому поводу. Может быть, я просто не должен даже задавать этот вопрос, но это сводит меня с ума, поэтому здесь у нас go.

У меня есть приложение Heroku с двумя динамо. У меня есть веб-динамо с моим внешним интерфейсом (Angular) и серверный динамо с моим бэкэндом (Node). Я хочу отправить HTTP-запрос от моего веб-интерфейса на свой бэкэнд-сервер. Возможно ли это?

Я знаю, что могу заставить это работать, разделив их на два приложения, но я хотел бы сохранить их в одном приложении, если это возможно.

Вот мой Procfile, просто дополнительная информация. Они успешно разворачиваются, я просто хочу дать визуальное представление о том, что именно я разворачиваю.

web: cd frontend && npm start
server: node app.js

Если это даже невозможно, любая рука помощи будет оценена кем-то более знающим, чем I.

1 Ответ

0 голосов
/ 01 апреля 2020

Возможные. Пример:

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);

Здесь я развертываю интерфейс * stati c, расположенный в ../build, и обслуживаю его. Я расширяю веб-сервер функциональностью веб-сокета, работающей по тому же адресу, но по другому протоколу.

Вы также можете сделать это только с http. Вы должны разделить маршруты.

...