Развертывание сервера узла Heroku не отвечает клиенту - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь развернуть очень простой сервер узла на heroku, который выглядит следующим образом:

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
console.log("Server started")

wss.on('connection', function connection(ws) {
    console.log('Client connected');
     setInterval(() => {
        wss.clients.forEach((client) => {
            if (client.readyState === WebSocket.OPEN) {
                var testObject = {
                    message: new Date().toTimeString()
                }
                client.send(JSON.stringify(testObject));
            }
        });
    }, 5000);
    ws.on('close', () => console.log('Client disconnected'));
});

Package. json

"engines": {
    "node": "12.x"
  },
  "scripts": {
    "server": "node server.js"
  },

Если я запустил его локально, мой клиенты распечатывают метки времени. Теперь разворачиваю его на героку. В журнале отображается:

2020-05-07T09: 30: 30.429508 + 00: 00 app [web.1]:> websocket-node@1.0.0 start / app 2020-05-07T09: 30: 30.429509+ 00:00 app [web.1]:> node server. js 2020-05-07T09: 30: 30.512985 + 00: 00 app [web.1]: Сервер запущен

Затем изменить конфигурацию моих клиентов

// const subject = webSocket('ws://localhost:8080');
const subject = webSocket('ws://whateverwhatever.herokuapp.com:8080');

Но я не получаю ответа от сервера. Что мне не хватает?

1 Ответ

0 голосов
/ 07 мая 2020

Спасибо @Tin Nguyen поменял тройку - заняло 30 сек c.

Код клиента:

const subject = webSocket('ws://fierce-dawn-73363.herokuapp.com');

Код сервера:

const PORT = process.env.PORT || 3000;
const wss = new WebSocket.Server({ port: PORT });
...