node.js websocket.io示例不起作用?

时间:2013-02-18 23:35:20

标签: node.js websocket

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

代码如下:(首先是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 个答案:

答案 0 :(得分:1)

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