Итак, я знаю node.js, но я учусь как socket.io и express.js (только что начал express/socket несколько часов назад).факторинг кода на стороне клиента в socket.io
Это не огромная проблема, но мне нравится, чтобы мой код был чистым, и я пытаюсь разложить код своей клиентской стороны, так что это просто тег скрипта как src. Например, на моей странице index.html У меня есть следующие:
..
<head>
<title>Example Title</title>
<link href="./styles/index.css" rel="stylesheet" type="text/css" />
<script src="./scripts/index.js" type="text/javascript"></script>
<script src="/socket.io/socket.io.js" type="text/javascript"></script>
</head>
Где ./scripts/index.js является Java-код index.html. Похоже
var socket = io.connect("http://localhost:8000");
document.getElementById("sendBox").submit = function() {
var msg = document.getElementById("m");socket.emit("chat message", msg.value);
msg.value = "";
return false;
};
Все маршрутизация работает, но теперь проблема в том, что я получаю ошибку «ReferenceError: ИО не определен», когда я пытаюсь использовать код. На веб-сайте socket.io в их примере всегда есть только тег скрипта со всем встроенным в него кодом страницы. Я думаю, что это уродливо и означает, что мне нужно отредактировать html-страницу, чтобы редактировать js для страницы. Это особенно раздражает, когда подсветка и автокоррекция в моем редакторе выравниваются по html в html-файле, а не js. Это не катастрофическая вещь, я МОГУ Вставить мой код, как socket.io показывает в своих примерах, но я бы предпочел не делать этого.
для тех, кто смущает то, что я имею в виду, начинающий пример кода Socket.io в:
<head>
<title>Socket.IO Chat</title>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script> // This is the code i want to look more like^
var socket = io();
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
</script> // End of the code I'd like to factor out.
Подводя итог, как я могу сделать переменную «Ио» доступна для моего index.js сценария?
Благодаря
Правильно ли это: '<сценарий SRC = "/socket.io/socket.io.js" ...> '? Это будет ссылаться на каталог «socket.io» в корневом каталоге вашего сервера. Проверьте панель «Отладчик» браузера (F12) Net, чтобы узнать, загружена ли «socket.io.js». – Kenney
На самом деле, socket.io немного странно, но они делают свой скрипт доступным в этом месте специально, поэтому независимо от того, где находится ваш веб-сайт, этот путь приведет вас к их сценарию. – masquarainian