socket.io, io не определен (ошибка JS) - PullRequest
22 голосов
/ 12 апреля 2011

Я только что начал с socket.io, он выдает ошибку JS на странице клиента

io не определено

Как это исправить?

Ответы [ 7 ]

33 голосов
/ 12 апреля 2011

В качестве альтернативы вы можете использовать Socket.io CDN :

<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>
22 голосов
/ 12 апреля 2011

введите <script src="http://yournodeserver/socket.io/socket.io.js"></script> в ваш код

5 голосов
/ 14 ноября 2012

Я столкнулся с той же проблемой при использовании экспресс. Даже размещение сервера: порт внутри скрипта не будет работать. После запуска сервера я заставлю сокет прослушивать этот порт, что, я думаю, было ошибкой. Изменение значения ниже работает нормально

var app = express();
app.set('port', process.env.PORT || 3000);
var server = http.createServer(app);
var io = require('socket.io').listen(server);
server.listen(app.get('port'));

На стороне клиента я просто включаю скрипт

 <script src="/socket.io/socket.io.js"></script>
2 голосов
/ 03 июля 2012

У меня есть приложение для сокетов, где мой сервер (не CDN) обслуживает скрипт socket.io.js.Итак, хотя Эммерман прав, говоря, что вам нужно включить тег script в ваш клиентский HTML-код, ресурс не будет загружен, если ваш сервер не работает.Один из вариантов - написать сценарий JS на стороне клиента, который проверяет io, прежде чем пытаться использовать socket.io.Если его нет (undefined / null), то вы можете условно показать что-то еще, например, «сервер выключен», или в моем случае я собираюсь установить таймер, который периодически проверяет, пока сервер не будет восстановлен.

[ОБНОВЛЕНИЕ 2] Закончилось необходимость включать тег сценария, проверить наличие объекта io и выполнить window.location.reload () через 10 секунд (используя setTimeout) (что в конечном итоге приведет кнадеюсь, что скрипт загружен и io существует, после чего я могу подключиться к серверу сокетов.)

[ОБНОВЛЕНИЕ] Я загружаю скрипт с помощью вызова ajax, а не с помощью тега html script.Затем с помощью таймера я периодически проверяю, будет ли загружаться скрипт - в конечном итоге, когда сервер будет восстановлен / перезагружен.jQuery ref для динамической загрузки JS-скриптов: http://api.jquery.com/jQuery.getScript/

1 голос
/ 23 мая 2014

Оберните ваш клиентский код в '$ (document) .ready ()' для jQuery или другой подобной функции библиотеки. Таким образом, вы будете уверены, что ваш код запускается после загрузки библиотеки.

1 голос
/ 21 ноября 2013
<script src="http://cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"></script>

это последняя версия socket.io, которая будет включена.

0 голосов
/ 09 мая 2015

http://socket.io/download/ - официальная страница для последней cdn.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...