При работе с localhost я использовал следующий код для реализации функций сокета:
На стороне сервера
var express = require('express');
var app = express();
const io = require('socket.io')(5000);
На стороне клиента
<script src="http://localhost:5000/socket.io/socket.io.js"></script>
<script>const socket = io.connect('http://localhost:5000');</script>
Приведенный выше код работал у меня локально. Ранее пытался использовать код, приведенный в официальной документации, но он не работал. Я получил сообщение об ошибке 404 при попытке загрузить файл socket.io. js, и на клиентской стороне было указано, что «io не определено». Этот код указан ниже -
на стороне сервера
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
на стороне клиента
<script src="/socket.io/socket.io.js"></script>
<script>var socket = io.connect('http://localhost');</script>
Теперь мне нужно разверните приложение в Heroku и не знаете, как выполнять функции сокета. Я попробовал оба вышеупомянутых способа, но ни один не работал в Heroku. Я получаю «ошибка 404» и «IO не определен». Код на стороне сервера написан в ./app.js, а код на стороне клиента - в ./public/index.html.
Как заставить функционировать этот сокет работать в Heroku и также почему официальный код даже не работает локально?