2013-03-22 123 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> 
相关问题