Первый раз ТАК сообщение!
Я новичок в Jode JS, и мне нужна помощь, пока я следую учебному пособию по Heroku: https://devcenter.heroku.com/articles/node-websockets (вариант 1)
Я создаю приложение, которое будетиспользуйте веб-сокеты с node.js, Heroku и Express.Когда я запускаю код server.js прямо, как в примере выше, он работает.Сейчас я пытаюсь добавить маршруты, и это по какой-то причине разрывает соединение с веб-сокетом.
server.js:
'use strict';
const express = require('express');
const SocketServer = require('ws').Server;
const path = require('path');
const PORT = process.env.PORT || 3000;
const INDEX = path.join(__dirname, 'index.html');
const server = express()
const ADMIN= path.join(__dirname, +'/admin/' + 'adminPage.html');
const wss = new SocketServer({ server });
var router = express.Router();
var app=express();
// home page route
router.get('/', function(req, res) {
res.sendFile(INDEX);
});
// admin page route
router.get('/admin', function(req, res) {
res.sendFile(ADMIN);
});
// apply the routes to our application
app.use(express.static('public'))
app.use('/', router);
app.listen(PORT, () => console.log(`Listening on ${ PORT }`));
wss.on('connection', (ws) => {
console.log('Client connected');
ws.on('close', () => console.log('Client disconnected'));
});
setInterval(() => {
wss.clients.forEach((client) => {
client.send(new Date().toTimeString());
});
}, 1000);
Текущий Index.html:
<p id='server-time'></p>
<script>
var HOST = location.origin.replace(/^http/, 'ws')
var ws = new WebSocket(HOST);
var el = document.getElementById('server-time');
ws.onmessage = function (event) {
el.innerHTML = 'Server time: ' + event.data;
};
</script>
Перенаправление на страницу администратора работает, но страница index.html возвращает следующееошибка:
**WebSocket connection to 'ws://localhost:3000/' failed: Error during WebSocket handshake: Unexpected response code: 200**
Я уверен, что это простая ошибка, но я просто не могу ее найти - благодарю всех за помощь!