2013-02-18 143 views
1

我是node.js的新手,并通过“smashing node.js”书中的示例工作。 在websockets章节中,我正在努力让这个例子起作用。原谅我这是一个非常简单的错误!我不确定ws.onopen事件处理程序是否正在运行?node.js websocket.io示例不工作?

代码如下:(首先server.js文件):

var express = require('express') , wsio = require('websocket.io'); 

var app = express.createServer().listen(3000); 

var ws = wsio.attach(app); 

app.use(express.static('public')); 

ws.on('connection', function (socket) { 

    socket.on('message', function(msg) { 
     console.log(' \033[96mgot:\033[39m ' + msg); 
     socket.send('pong'); 
    }); 
}); 

其次,./public/index.html文件的脚本内容:

var lastMessage; 

window.onload = function() { 
    var ws = new WebSocket('ws://localhost'); 

    ws.onopen = function() { 
     ping(); 
    } 
    ws.onmessage = function(ev) { 
     console.log(' got: ' + ev.data); 
     document.getElementById('latency').innerHTML = new Date - lastMessage; 
     ping(); 
    } 

    function ping() { 
     lastMessage =+ new Date; 
     ws.send('ping'); 
     document.getElementById('latency').innerHTML = 'test'; 
    }; 
}; 

我已经使用package.json文件安装在节点的模块。

+1

请问您是否绑定了端口3000上的快速服务器,但是从客户端,您将端口默认为80? – naivedeveloper 2013-02-18 23:55:28

回答

1

在你的index.html,你需要连接到端口即var ws = new WebSocket('ws://localhost:3000');

+0

感谢您的回复 - 您是对的,我使用了更新版本的websocket.io以及以下链接中的示例:https://github.com/LearnBoost/websocket.io/blob/主/示例/回波/ server.js。谢谢! – 2013-02-24 14:01:10