Ответ 1
введите <script src="http://yournodeserver/socket.io/socket.io.js"></script>
в свой код
Я только что начал с socket.io, его предоставление JS Error на странице клиента
io не определен
Как это исправить?
введите <script src="http://yournodeserver/socket.io/socket.io.js"></script>
в свой код
В качестве альтернативы вы можете использовать Socket.io CDN:
<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>
У меня возникла такая же проблема при использовании выражения. Даже размещение сервера: порт внутри script не будет работать. После запуска сервера я сделаю сокет прослушиванием этого порта, это была ошибка, я думаю. Использование этого ниже работает отлично
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
<script src="/socket.io/socket.io.js"></script>
У меня есть приложение сокета, где мой сервер (а не CDN) обслуживает socket.io.js script. Итак, в то время как Emmerman прав, говоря, что вам нужно включить тег script в свой HTML-код клиента, этот актив не будет загружен, если ваш back-end не работает. Один из вариантов - написать JS script на стороне клиента, который проверяет io, прежде чем пытаться использовать socket.io. Если он не присутствует (undefined/null), вы можете либо условно показать что-то вроде "сервер вниз", либо в моем случае, я собираюсь установить таймер, который периодически проверяет, пока сервер не будет восстановлен.
[UPDATE 2] Закончилось включение тега script, проверить существование объекта io
и сделать window.location.reload() через 10 секунд (используя setTimeout
) (что, в конечном итоге, будет, надеюсь что существует script и io
, после чего я могу подключиться к серверу сокетов.)
[UPDATE] Я загружаю script с помощью вызова ajax, а не с помощью тега html script. Затем с помощью таймера я периодически проверяю, будет ли загружаться script - в конце концов, когда сервер будет восстановлен/перезагружен. jQuery ref для динамического загрузки JS-скриптов: http://api.jquery.com/jQuery.getScript/
Оберните свой код клиента на $(document).ready() 'для jQuery или другой подобной функции библиотеки. Таким образом, вы убедитесь, что ваш код запускается после загрузки библиотеки.
<script src="http://cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"></script>
это последняя версия socket.io, которая будет включена.
http://socket.io/download/ - официальная страница для последнего cdn.