2012-05-14 57 views
3

所以,我沒有npm install expressnpm install socket.io我帶來了node_modules文件夾到我的server文件夾中,我使用WAMP遺漏的類型錯誤:對象#<Object>有沒有方法「連接」

以此爲server.js

var app = require('express').createServer(); 
var io = require('socket.io').listen(app); 

io.sockets.on('connection', function (socket) { 
console.log('Someone connected!'); 
socket.on('set nickname' , function (nickname) { 
socket.nickname = nickname; 
console.log(nickname + ' just connected!'); 
}); 

}); 

app.listen(8080); 

,並以此爲client.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <title>Untitled 4</title> 
<script src="http://cdn.socket.io/stable/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost:8080'); 
    socket.on('connect', function() { 
    console.log('We are connected!'); 
var name = prompt('What is your name?'); 
this.emit('set namename', name, function (success) { 
console.log('The server got the message!'); 

if (!success) { 
console.log('Nickname is in use!'); 
} 
}); 
}); 
</script> 
</head> 
<body> 

</body> 
</html> 

我得到的錯誤是Uncaught TypeError: Object #<Object> has no method 'connect'

我知道我用比socket.io.js不同becase的我不不知道從哪裏得到/socket.io/socket.io.js。我試着做node_modules/socket.io/lib/socket.io.js這是另一個我發現我node_modules文件夾,但事實並非如此。

我也開始了我的server,我得到了socket.io started所以我知道這是有效的。

回答

5

你得到的錯誤是因爲socket.io腳本的來源(到index.html)是錯誤的。因此,改變這種:

<script src="http://cdn.socket.io/stable/socket.io.js"></script> 
在此

<script src="http://localhost:3000/socket.io/socket.io.js"> </script> 

是的,socket.io是一個文件夾到根服務器目錄和我的服務器端套接字正在偵聽端口3000

+2

啊,我現在看到它。謝謝你,Wilk。 – nn2

相關問題