2013-03-22 87 views
0

嘿,我剛剛開始修補node.js並且是一個完整的noob。我試圖得到一個簡單的客戶端服務器通信使用socket.io和表達(我從來沒有使用過這些)。無法在node.js中使用express運行客戶端服務器

,這裏是我的應用程序代碼(app.js):

var  sys   = require('sys'), 
     express  = require('express'), 

     app   = express('localhost'); 
     http = require('http'), 
     server = http.createServer(app), 

     io   = require('socket.io').listen(server); 

app.use(express.static(__dirname + '/public')); 

app.get('/', function (req, res) { 
    res.send('Hello World'); 
}); 

app.listen(3000); 

var socket = require('socket.io').listen(server); 

socket.on('connection', function (client){ 
    // new client is here! 
    setTimeout(function() { 
     client.send('Waited two seconds!'); 
    }, 2000); 

    client.on('message', function() { 
    }) ; 

    client.on('disconnect', function() { 
    }); 
}); 

,這裏是我的客戶端(client.html)代碼:

<html> 
<p id="text">socket.io</p> 

<script src="/socket.io/socket.io.js"></script> 


<script> 
    $(document).ready(function(){ 

     var socket = new io.Socket(), 
       text  = $('#text'); 

     socket.connect(); 

     socket.on('connect', function() { 
      text.html('connected'); 
     }); 

     socket.on('message', function (msg) { 
      text.html(msg); 
     }); 

     socket.on('disconnect', function() { 
      text.html('disconnected'); 
     }); 

    }); 
</script> 

我得到了大部分的代碼: NodeJS + socket.io: simple Client/Server example not working

和改變它是與快遞3.x的兼容

然而,當我運行服務器並使用chrome打開我的客戶端時,它告訴我它無法加載資源文件: IO使用NPM

我也有過ATLEAST 20分類似的帖子閱讀並一直沒能找到答案

請幫助我。謝謝

+0

'express'爲您創建的服務器,你可能並不需要另一個'server' – imslavko 2013-03-22 02:28:59

回答

0

你是否直接從本地文件系統打開client.html頁面?對socket.io.js的請求應該看起來像http://localhost/socket.io/socket.io.js而不是file:///socket.io/socket.io.js

+0

我已經試過了,它仍然給我的錯誤,它無法加載http://localhost/socket.io/socket.io.js – user2197558 2013-03-22 05:15:49

2

socket.io.js文件需要從端口3000提供,如localhost:3000。 因此,這裏是你做了什麼改變 <script src="/socket.io/socket.io.js"></script>

<script src="http://localhost:3000/socket.io/socket.io.js"></script> 
相關問題