Nodejs&websockets

我试图从我的浏览器(Chrome)推送数据到一个nodejs服务器,我遇到了很大的麻烦。

基本上,我已经得到了浏览器中显示的代码:

<script src="./Socket.IO/socket.io.js"></script> <script> io.setPath('./Socket.IO/'); var socket=new io.Socket('xxx.xxx.xxx.xxx'); socket.on('connect',function(){ alert('connect'); }); socket.on('message',function(msg){ alert('message'+msg); }); socket.on('close',function(){ alert('close'); }); socket.on('disconnect',function(){ alert('disconnect'); }); socket.connect(); </script> 

唯一出现的警报是“closures”警报。

这是我的服务器代码:

 var http=require('http'); var io=require('./Socket.IO-node'); var server=http.createServer(function(req, res){ // your normal server code res.writeHeader(200, {'Content-Type': 'text/html'}); res.writeBody('<h1>Hello world</h1>'); res.finish(); }); var socket=io.listen(server,{transports:websocket,port:8080}); socket.on('connection',function(client){ console.log('connection'); }); 

您可以看到我正在尝试将连接logging到控制台,但没有任何显示。 我一直在谷歌search,并尝试通过http://github.com/LearnBoost/Socket.IO-node上的Socket.IO示例工作,似乎没有任何工作对我来说…

任何指针是非常感激。

编辑:嗨,

我现在有以下服务器代码:

 var http=require('http'); var io=require('./Socket.IO-node'); var server=http.createServer(function(req, res){ //your normal server code res.writeHead(200, {'Content-Type': 'text/html'}); res.write('Hello world'); res.end(); }); server.listen(8124); server=io.listen(server); server.on('connection', function(client){ console.log('EOH connected'); sys.log('EOH connected'); }); server.on('clientConnect',function(client){ console.log('EOH connected'); sys.log('EOH connected'); }); server.on('clientDisconnect',function(client){ console.log('EOH disconnected'); sys.log('EOH disconnected'); }); 

和下面的客户端代码:

 <script> window.onload=function(){ io.setPath('./Socket.IO/'); socket = new io.Socket('localhost', {'port': 8124}); socket.connect(); socket.send('xxx'); } </script> 

当我在localhost:8124加载客户端代码时,我希望某种'clientConnect'事件被触发。 我也发送套接字对象上的数据,并没有什么出现在服务器上…完全难住。 现在看看使用node-websocket-server( http://github.com/miksago/node-websocket-server )。

解决scheme:git clone git://github.com/LearnBoost/Socket.IO.git –recursive

使用 – recursion标志。 卫生署!

       

网上收集的解决方案 "Nodejs&websockets"

这是一个Chrome的问题: Node.js,WebSocket的位置问题?

这段代码适用于我:

 var server = http.createServer(...); server.listen(8124); server = io.listen(server); server.on('connection', function(client){ sys.log('client connected'); }); 

然后在客户端:

 io.setPath('/media/js/Socket.IO/'); socket = new io.Socket('localhost', {'port': 8124}); socket.connect(); 

也许明确的端口参数将有助于你的情况?