여기는 많은 오류가 있습니다. 그러나 Google을 통해 발견 된 일부 게시물은 여전히 내 문제를 해결하지 못했습니다.잡히지 않은 ReferenceError : io가 정의되어 있지 않습니다.
내 index.html에 io javascript를 포함 시키려 할 때 위의 오류가 발생합니다.
이 나는 시도했다 : <script src="http://localhost:8080/socket.io/socket.io.js"></script>
그리고
심지어 문제가 계속 그럼에도 불구하고 계속 3000로 포트를 전환 시도 <script src="/socket.io/socket.io.js"></script>
.
내 app.js를 다시 시작하고 socket.io를 다시 설치해 보았습니다 (내 패키지에도 있음). npm install socket.io
. 내 node_modules 폴더에 socket.io 폴더가 만들어져있는 것을 볼 수 있습니다.
나는 다음과 같은 내 서버를 시작
var express = require('express');
var app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
app.listen(8080);
그리고 내 인덱스는 구글의 최신 jQuery를로드 : <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
내 터미널 내 app.js를 다시 시작할 때 socket.io 시작되었는지 보여줍니다 :
23 Jun 13:31:56 - [nodemon] starting `node app.js`
info - socket.io started
총 내 index.html을 (나는/다시 입력 튜토리얼에서 리모델링 : http://psitsmike.com/2011/09/node-js-and-socket-io-chat-tutorial/)
코드에서<script src="http://localhost:8080/socket.io/socket.io.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
var socket = io.connect();
socket.on('connect', function() {
socket.emit('adduser', prompt("Hoe heet je?"));
});
socket.on('updateChat', function(username, data) {
$('#conversation').append('<strong>' + username + '</strong> says: ' + data + '<br>');
});
socket.on('updateUsers', function(data) {
$('#users').empty();
$.each(data, function(k, v) {
$("#users").append('<div>' + k + '</div>');
});
});
$(document).ready(function() {
$('#datasend').click(function() {
//get the message and empty the input
var msg = $('#data').val();
$('#data').val('');
//Let the server execute sendchat along with the msg
socket.emit("sendChat", msg);
});
//ENTER key
$('#data').keypress(function(e) {
keyCode = (e.keyCode ? e.keyCode : e.which);
if (keycode == 13) {
$(this).blur();
$('#datasend').focus().click();
}
});
});
</script>
<div style="float:left;width:100px;border-right:1px solid black;height:300px;padding:10px;overflow:scroll-y;">
<b>USERS</b>
<div id="users"></div>
</div>
<div style="float:left;width:300px;height:250px;overflow:scroll-y;padding:10px;">
<div id="conversation"></div>
<input id="data" style="width:200px;" />
<input type="button" id="datasend" value="send" />
</div>
이
을 변경? 클라이언트 또는 서버에서? (내가 여기에 게시 한 코드는 서버 측에 있습니다. 그럴만 한 희망입니다.) –
Chrome의 제 콘솔에 있습니다. 그래서 그것은 고객입니다. – CaptainCarl
사용중인 클라이언트 코드를 게시하는 데주의하십시오? 이 참조 오류는 서버 측과 아무 관련이 없습니다. –