Я пытаюсь запустить скрипт чата, используя node.js
и socket.io
. Я последовал за the tutorial on the socket.io website и получил его для запуска на моем локальном сервере Windows http://localhost:3000
просто отлично.socket.io игнорирование URL-адреса, похоже, вызывает опрос GET 404 error
Теперь я передал проект на веб-сервер, где он будет использовать port 54321
. Поскольку сервер работает под управлением веб-сервера Apache, мне нужно использовать .htaccess
файл для перенаправления запросов на сервер Node.js:
RewriteEngine On
RewriteRule ^chat/(.*) http://localhost:54321/$1 [P]
Так что мой чат скрипт доступен на http://www.examle.com/chat/
Сайт будет открыт только отлично в браузере, все HTML есть. Однако функции socket.io не работают. Консоль (браузер, на стороне клиента) показывают следующие сообщения об ошибках:
GET http://www.example.com/socket.io/?EIO=3&transport=polling&t=1439208895332-0 404 File not found
Я видел подобные вопросы здесь на SO, которые имеют тот же 404 проблемы. Ответы в основном касаются правильного порядка переменных в index.js сервера. Я пробовал эти решения, чтобы быть уверенными, но они не помогли. Поскольку сценарий работает на моем локальном сервере (без какого-либо подкаталога в URL-адресе), я думаю, что это может быть что-то другое. Любопытно, что скрипты socket.io на стороне клиента, похоже, игнорируют подкаталог /chat/
в запросе. Если я попытаюсь открыть URL-адрес из запроса GET вручную с помощью /chat/
, он даст мне ответ!
http://www.example.com/chat/socket.io/?EIO=3&transport=polling&t=1439208895332-0
Это сработает!
Но как я могу получить socket.io, чтобы на самом деле использовать правильный путь/url для своих запросов?
что (в основном) сделал трюк. Пришлось использовать 'io.connect()' вместо просто 'io()' хотя. Большое спасибо! – Konadi