我知道這是一個在這裏討論了很多錯誤。但在通過谷歌發現一些帖子後,它仍然沒有解決我的問題。未捕獲ReferenceError:io未定義
當我嘗試在我的index.html中包含io javascript時,出現上述錯誤。
我已經試過: <script src="http://localhost:8080/socket.io/socket.io.js"></script>
而<script src="/socket.io/socket.io.js"></script>
,甚至試圖切換端口3000的問題仍然存在不過。
我試着重新啓動我的app.js與npm install socket.io
重新安裝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
小心發佈您正在使用的客戶端代碼?這個引用錯誤與服務器端無關。 –