2012-08-13 38 views
0

我使用https://github.com/LearnBoost/socket.io中的以下示例代碼來啓動Socket.IO和Express示例。Socket.IO簡單快速示例不適用於OS X Mountain Lion

當我爲localhost,我得到這個錯誤:

Cannot GET/

我app.js看起來是這樣的:

var express = require('express'); 
var io = require('socket.io'); 
var server = require('http'); 

var app = express() 
    , server = require('http').createServer(app) 
    , io = io.listen(server); 

server.listen(80); 

io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

我的index.html是這樣的:

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost'); 
    socket.on('news', function (data) { 
    console.log(data); 
    socket.emit('my other event', { my: 'data' }); 
    }); 
</script> 

包:

npm ls 
├─┬ [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └─┬ [email protected] 
│ └── [email protected] 
└─┬ [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ └── [email protected] 
    └─┬ [email protected] 
    ├─┬ [email protected] 
    │ └── [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ ├── [email protected] 
    │ ├── [email protected] 
    │ └── [email protected] 
    └── [email protected] 

謝謝!

回答

2

您尚未指示Express爲您的index.html文件提供服務。也許最簡單的方式得到它運行的方法是創建一個目錄名爲public和它把index.html,並修改您的Express服務器,使其從該目錄提供靜態文件:

var express = require('express'); 
var io = require('socket.io'); 
var server = require('http'); 
var path = require('path'); 

var app = express() 
    , server = require('http').createServer(app) 
    , io = io.listen(server); 
app.use(express.static(path.join(__dirname, 'public'))); 

然後在瀏覽器中訪問localhost/index.html

相關問題